2017-05-19 1 views
0

In meiner WinForm-Anwendung habe ich einige ComboBoxen mit AutoCompleteMode als SuggestAppend und AutoCompleteSource.ListItems.C# Combobox Autocomplete suggestappend Ausgaben

Wenn die Combobox leer ist und ich 'f' eintippe, erscheint die Liste mit dem Eintrag 'foo' darin. Der Text wird automatisch an foo angehängt. Wenn ich mit der Tabulatortaste zum nächsten Steuerelement wechsle, wählt die Combobox den Eintrag foo. Fein.

Wenn die Combobox bereits den Eintrag 'foo' ausgewählt hat und ich 'f' eintippe, erscheint in der Liste der Eintrag 'foo', aber der Text wird nicht automatisch an foo angehängt. Wenn ich zum nächsten Steuerelement gehe, indem ich die Tabulatortaste drücke, wählt die Combobox nicht den Eintrag foo, der angezeigte Text bleibt 'f'. Ich möchte, dass es das gleiche Verhalten wie oben hat.

Antwort

1

Was Combobox der Leave Veranstaltung wie diese zu verwenden,

private void comboBox1_Leave(object sender, EventArgs e) 
{ 
    string item = source.FirstOrDefault(x => x.StartsWith(comboBox1.Text)); 
    //search string inside source of suggests and if there is a match get the first one 
    if(!string.IsNullOrEmpty(item)) 
    { 
      int index = comboBox1.Items.IndexOf(item); // find it inside combobox items 
      comboBox1.SelectedIndex = index; // and select it 

     } 
} 

Hoffnung hilft,