【问题标题】:textbox dynamic autocomplete文本框动态自动完成
【发布时间】:2012-10-18 06:58:48
【问题描述】:

我的表单有一个文本框,我想在输入时添加自动完成功能。 我的自动完成值是通过 json api 动态加载的。

我在文本框的“TextChanged”事件上应用了“更新”功能。

每次触发时,自动完成都会打开 0.5 秒,并且文本框的值会更改为第一个自动完成条目。之后自动完成菜单消失。

我无法手动选择任何建议...

如何解决?

加载事件:

AutoCompleteStringCollection colValues = new AutoCompleteStringCollection();
private void StellenUebersicht_Load(object sender, EventArgs e)
{
        TextBox textBoxExample = textBox1;
        textBoxExample.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
        textBoxExample.AutoCompleteSource = AutoCompleteSource.CustomSource;
        textBoxExample.AutoCompleteCustomSource = colValues;
        doAutoCompleteListExample();
}

doAutoCompleteListExample():

private void doAutoCompleteListExample()
    {
        if (textBox1.Text.Length >= 1)
        {
            string w = Web.get("MY JSON API URL");

            JObject o = JObject.Parse(w);
            List<string> ac = new List<string>();
            foreach (JObject item in o["items"])
            {
                string name = item["name"].ToString();
                ac.Add(name);
            }
            colValues.AddRange(ac.ToArray());
        }


    }

【问题讨论】:

标签: c# json autocomplete


【解决方案1】:

我修好了。

解决方案:

改变

textBoxExample.AutoCompleteMode = AutoCompleteMode.SuggestAppend;

textBoxExample.AutoCompleteMode = AutoCompleteMode.Suggest;

【讨论】:

    【解决方案2】:

    只需删除您的 If,不需要 If... 如果您不确定,请执行此操作

     // if (textBox1.Text.Length >= 1)
        //    {
                string w = Web.get("MY JSON API URL");
    
                JObject o = JObject.Parse(w);
                List<string> ac = new List<string>();
                foreach (JObject item in o["items"])
                {
                    string name = item["name"].ToString();
                    ac.Add(name);
                }
                colValues.AddRange(ac.ToArray());
       //     }
    

    也许对你有帮助

    【讨论】:

      【解决方案3】:

      AutoCompleteCustomSourceAutoCompleteModeAutoCompleteSource 等属性执行TextBox,通过将输入的前缀字母与数据源中所有字符串的前缀进行比较,自动完成用户输入字符串。

              textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
              textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
              AutoCompleteStringCollection DataCollection = new AutoCompleteStringCollection();
              addItems("Add your Data here");
              textBox1.AutoCompleteCustomSource = DataCollection;
      

      完整来源here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-30
        • 2011-04-18
        • 2010-09-22
        相关资源
        最近更新 更多