1

私のフォームには textBox があり、入力中にオートコンプリートを追加したいと考えています。私のオートコンプリート値は、json API を介して動的に読み込まれます。

textBox の「TextChanged」イベントに「update」関数を適用しました。

トリガーされるたびに、オートコンプリートが 0.5 秒間開き、textBox の値が最初のオートコンプリート エントリに変更されます。その後、オートコンプリート メニューが消えます。

手動で提案を選択することはできません...

直し方?

onload イベント:

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());
        }


    }
4

3 に答える 3

1

それを私が直した。

解決:

変化する

textBoxExample.AutoCompleteMode = AutoCompleteMode.SuggestAppend;

textBoxExample.AutoCompleteMode = AutoCompleteMode.Suggest;
于 2012-10-28T22:21:48.413 に答える
1

If,no need 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());
   //     }

多分これはあなたを助ける

于 2013-12-19T02:06:58.170 に答える
0

AutoCompleteCustomSourceAutoCompleteModeおよびAutoCompleteSourcetoなどのプロパティは、TextBox入力されたプレフィックス文字をデータ ソース内のすべての文字列のプレフィックスと比較して、ユーザー入力文字列を自動的に完成させる を実行します。

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

ここに完全なソースがあります。

于 2014-09-23T05:40:12.797 に答える