Проблема с автозаполнением ComboBox при динамическом добавлении значений - PullRequest
0 голосов
/ 22 июня 2011

В приложении WinForms у меня есть комбинированный список, который я пытаюсь заполнить значениями, основанными на пользовательском вводе.Например, если пользователь вводит m, он должен показать ему все значения, начинающиеся с буквы m, но я не хочу добавлять все значения в начале, потому что значений много.

Для этого я создал событие textchanged, и когда пользователь вводит, например, букву m, моя программа переходит в мою базу данных и добавляет в поле со списком все значения с буквой m.
Проблемачто я думаю, что поле со списком сначала видит, должно ли оно автоматически заполнять (предлагать) значения, и только после этого оно добавляет значения.

Как мне сделать так, чтобы оно сначала добавляло значения, или сделать проверку списка снова, если оно должно предложитьзначения?

Вот мой код:

private void comboBox1_TextChanged(object sender, EventArgs e)
{
    comboBox1.Items.Clear();
    for (int i = 0; i < MilkProducts.Length; i++)
    {
        if (MilkProducts[i].StartsWith(comboBox1.Text))
        {
            comboBox1.Items.Add(MilkProducts[i]);
        }
    }
}

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Возможно, вам придется использовать Win32 API (используя PInvoke) здесь, отправив соответствующее сообщение в поле со списком, чтобы показать результат поиска "после" обработки события сделано

Пожалуйста, обратитесь к ниже URLи вы можете найти то, что вы ищете:

http://msdn.microsoft.com/en-us/library/bb775792(VS.85).aspx

1 голос
/ 22 июня 2011

Я думаю, проблема в том, что вы очищаете все элементы в ComboBox на comboBox1.Items.Clear(), а затем обращаетесь к его содержимому на comboBox1.Text. Возможно, вам следует попробовать сделать это по-другому.или очистить его в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...