如何在用户在c#中的组合框内键入拼写时创建组合框自动填充

时间:2013-03-05 08:38:18

标签: c# winforms combobox

我的朋友们,我的Windows窗体中有一个组合框,我可以用数据库填充数据, 但是,当用户在组合框中键入字母时,我无法填充组合框, 例如,当用户在组合框中键入字母“R”时,组合框必须下拉并显示所有可能的字母“R”

3 个答案:

答案 0 :(得分:5)

  1. yourComboBox.AutoCompleteSource设置为AutoCompleteSource.ListItems;(如果您的yourComboBox.Items已从数据库中填写)
  2. yourComboBox.AutoCompleteMode设为SuggestAppend

答案 1 :(得分:1)

您必须使用comboBox上的KeyUp事件,并使用comboBox.Text过滤comboBox.Items集合以仅显示包含的类型字符。您还需要强制comboBox窗口下拉。

答案 2 :(得分:1)

希望这可以帮助你:

private void comboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    char ch = e.KeyChar;
    string strToFind;

    // if first char
    if (lastChar == 0)
        strToFind = ch.ToString();
    else
        strToFind = lastChar.ToString() + ch;

    // set first char
    lastChar = ch;

    // find first item that exactly like strToFind
    int idx = comboBox1.FindStringExact(strToFind);

    // if not found, find first item that start with strToFind
    if (idx == -1) idx = comboBox1.FindString(strToFind);

    if (idx == -1) return;

    comboBox1.SelectedIndex = idx;

    e.Handled = true;
}

void comboBox1_GotFocus(object sender, EventArgs e)
{
    // remove last char before select new item
    lastChar = (char) 0;
}

来自here