Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WinForms ComboBox DropDown and Autocomplete window both appear

I've got a ComboBox on a winforms app with this code:

comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;  DataTable t = new DataTable(); t.Columns.Add("ID", typeof(int)); t.Columns.Add("Display", typeof(string));  for (int i = 1; i < 2000; i++) {     t.Rows.Add(i, i.ToString("N0")); }  comboBox1.DataSource = t; comboBox1.ValueMember = "ID"; comboBox1.DisplayMember = "Display"; 

I then follow these steps when the window opens:

  1. Click the ComboBox drop down button -- this displays the list of items and selects the text in the ComboBox
  2. Type '5', '1' ... i.e. I'm looking to use autocomplete to search for 515, 516, etc.
  3. You'll see that the autocomplete window now appears ON TOP of the drop down list. However if I mouse over, it's the obscured drop down window behind the autocomplete window that's receiving the mouse events, including the click. So I think I'm clicking on an autocomplete item but actually clicking on something totally random that I can't see.

Is this a bug in the ComboBox? I'm using Windows 7 if that matters. Am I configuring the ComboBoxwrong somehow?

Note also that using the KEYBOARD uses the autocomplete drop down. So up/down arrow keys are using the front window, but the mouse is using the back window.

enter image description here

like image 977
Clyde Avatar asked Jun 17 '10 19:06

Clyde


1 Answers

Add a single line of code to your ComboBox KeyDown event and the problem is solved!

private void comboBox_NameAndID_KeyDown(object sender, KeyEventArgs e) {     comboBox_NameAndID.DroppedDown = false; } 

Source

like image 186
Joe Gayetty Avatar answered Oct 14 '22 13:10

Joe Gayetty