none
Wie kann ich eine Autovervollständigung durch LINQ und Windows Forms implementieren? RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,
    heute wurde uns bei der App-Entwickler-Hotline unter anderem folgende Frage gestellt:

    Wie kann ich eine Autovervollständigung durch LINQ und Windows Forms implementieren?

    Unsere Antwort bzw. unser Lösungsvorschlag darauf war:

    Bei der Initializierung des Programms, muss man die folgenden Parameter dem benutzten Textbox zuweisen.

    textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
    textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;

    Die benötigten Parameter für den Textbox-Container sind „AutoCompleteSource“, „AutoCompleteMode“ und „AutoCompleteCustomSource“.

    1) AutoCompleteSource muss eingegeben werden, damit man eigene Daten als Quelle für die Autovervollständigung verwenden kann. (siehe [1])

    2) AutoCompleteMode bezeichnet den Modus des AutoCompletes. In diesem Fall wird wir den Suggest-Modus verwendet. (siehe [2])

    3) AutoCompleteCustomSource bezeichnet die Quelle der Vorschläge zur Autovervollständigung, welche hier eine AutoCompleteStringCollection ist.

    Dazu wird auch das TextChanged Ereignis einer Textbox verwendet wie folgendes:

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    //LINQ Anfrage 
    var query = from c in dc.Clients where c.Ort.Contains(textBox1.Text)
    		select c.Company;
    var autoCompleteStringCollection = new AutoCompleteStringCollection();
    foreach(Kunden kun in Kunden){
    	autoCompleteStringCollection.Add(kun.KundenName);
    }
    // Collection wird als Quelle zugewiesen 
    textBox1.AutoCompleteCustomSource = autoCompleteStringCollection;
    }

    In der als Beispiels gegebene LINQ-Anfrage kann man statt „Contains“ „StartsWith“ verwenden, um Einträge zu liefern, die mit der eingegebenen Zeichenkette anfangen. Ansonsten werden Einträge ausgewählt, die in der Textbox eingegebenen Zeichenkette enthalten.

    [1] http://msdn.microsoft.com/de-de/library/system.windows.forms.autocompletesource.aspx
    [2] http://msdn.microsoft.com/de-de/library/system.windows.forms.autocompletemode.aspx
    [3] http://social.msdn.microsoft.com/Forums/de-de/csharpgeneral/thread/8ebc64e3-a63a-4cf1-a2c0-d38729386f98  
    [4] http://tech.cybernet.lu/?p=158  

    Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.

    Viele Grüße,
    Hristo Valev
    App-Entwickler-Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die App-Entwickler-Hotline: http://www.msdn-online.de/Hotline
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die App-Entwickler-Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu MarkenzeichenInformationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die App-Entwickler-Hotline.

    Freitag, 7. Juni 2013 09:55