组合框可以输入,列表框不可以输入只能选择。
.NET中没有自动完成组合框(AutoCompleteComboBox),但可以自己添加这个功能。
完成KeyPress和TextChange事件。
private bool controlKey = false; private void OnTextChange(object sender, EventArgs e) { if (comboBox1.Text != "" && !controlKey) { // Search for a matching entry. string matchText = comboBox1.Text; int match = comboBox1.FindString(matchText); // If a matching entry is found, insert it now. if (match != -1) { comboBox1.SelectedIndex = match; // Select the added text so it can be replaced // if the user keeps typing. comboBox1.SelectionStart = matchText.Length; comboBox1.SelectionLength = comboBox1.Text.Length - comboBox1.SelectionStart; } } } private void OnKeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (int)Keys.Escape) { System.Console.WriteLine(e.KeyChar); // Clear the text. comboBox1.SelectedIndex = -1; comboBox1.Text = ""; controlKey = true; } else if (Char.IsControl(e.KeyChar)) { controlKey = true; } else { controlKey = false; } }