Elemente in das ComboBox-Steuerelement ausgewählt sind, während der Eingabe der ersten Zeichen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 814362 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Sie legen Sie die DropDownStyle-Eigenschaft des ComboBox-Steuerelements auf DropDownList, und geben Sie die ersten Zeichen des Elements im Kombinationsfeld-Steuerelement zur Laufzeit. Das Element, das im Kombinationsfeld-Steuerelement (ComboBox) ausgewählt ist, entspricht nicht die Zeichen, die Sie eingeben. Das Element, das im Kombinationsfeld-Steuerelement (ComboBox) ausgewählt ist, basiert auf dem letzten Zeichen, die Sie eingeben. Zum Beispiel wenn die Elemente im Kombinationsfeld-Steuerelement (ComboBox)Rot, Eiche und rose, bei der Eingabe von Zeilen in das Kombinationsfeld-Steuerelement (ComboBox), liegt der Schwerpunkt auf Eiche statt rose.

Ursache

Dieses Problem tritt auf, weil die Kombinationsfeld-Steuerelement (ComboBox) Suche auf ein Zeichen anstelle der vollständigen Zeichensatz basiert.

Abhilfe

Um dieses Problem zu umgehen, fügen Sie Code, der für Elemente mit den Zeichen durchsucht, die Sie in das Kombinationsfeld-Steuerelement (ComboBox) eingeben. Der Code muss auch das Element auswählen, das Übereinstimmung mit die Zeichen. Um den Suchtext in regelmäßigen Abständen zu löschen, verwenden Sie ein Timer-Steuerelement. Gehen Sie hierzu folgendermaßen vor:
  1. In Microsoft Visual Studio .NET oder Microsoft Visual Studio 2005 erstellen Sie eine neue Windows Anwendung mithilfe von Visual Basic .NET, Visual Basic 2005 oder Visual c# .NET.

    Standardmäßig wird jetzt Form1 erstellt.
  2. Ziehen Sie aus der Toolbox ein Timer zu Form1 hinzu.
  3. Legen Sie im Fenster Eigenschaften die Enabled-Eigenschaft auf true.
  4. Fügen Sie die folgende Anweisung in der Variablendeklaration Codeabschnitt:

    Visual Basic .NET oder Visual Basic 2005
    Dim searchstr As String
    Visual c# .NET
    string searchstr;
  5. Fügen Sie die zum Load-Ereignis von Form1 den folgenden Code hinzu:

    Visual Basic .NET oder Visual Basic 2005
    'set the timer interval and start the timer
    Timer1.Interval = 1000
    Timer1.Start()
    Visual c# .NET
    //set the interval  and start the timer
    timer1.Interval =1000;
    timer1.Start();
  6. Fügen Sie den folgenden Code hinzu, um das Tick-Ereignis der Timer1:

    Visual Basic .NET oder Visual Basic 2005
    'empty the string for every 1 seconds
    searchstr = ""
    Visual c# .NET
    //empty the string for every 1 seconds
    searchstr="";
  7. Fügen Sie den folgenden Code hinzu, um das <a0>KeyUp</a0>-Ereignis der Bezeichnung "ComboBox1":

    Visual Basic .NET oder Visual Basic 2005
          searchstr = searchstr & Chr(e.KeyValue)
          ' If the Search string is greater than 1 then use custom logic
          If searchstr.Length > 1 Then
             Dim index As Integer
             ' Search the Item that matches the string typed
             index = ComboBox1.FindString(searchstr)
             ' Select the Item in the Combo
             ComboBox1.SelectedIndex = index
          End If  
    Mit visual c# .NET
             searchstr = searchstr + Convert.ToChar(e.KeyCode);
             // If the Search string is greater than 1 then use custom logic
             if (searchstr.Length > 1)
             {
                int index;
                // Search the Item that matches the string typed
                index=comboBox1.FindString(searchstr);
                // Select the Item in the Combo
                comboBox1.SelectedIndex=index;
             }

Status

Es handelt sich hierbei um ein beabsichtigtes Verhalten.

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. In Microsoft Visual Studio .NET oder Microsoft Visual Studio 2005 erstellen Sie eine neue Windows Anwendung mithilfe von Visual Basic .NET, Visual Basic 2005 oder Visual c# .NET.

    Standardmäßig wird Form1 erstellt. Hinweis: Sie können den Code in Visual Basic 2005 ändern müssen. Standardmäßig erstellt Visual Basic zwei Dateien für das Projekt, wenn Sie ein Windows Forms-Projekt erstellen. Wenn das Formular "Form1" benannt ist, werden die beiden Dateien, die das Formular darstellen Form1.vb und Form1.Designer.vb benannt. Schreiben Sie Code in der Datei Form1.vb. Windows Forms-Designer schreibt den Code in der Datei Form1.Designer.vb. Windows Forms-Designer verwendet das partial-Schlüsselwort, um die Implementierung von Form1 in zwei separate Dateien aufzuteilen. Dieses Verhalten verhindert, dass den vom Designer generierten Code mit dem Code eingefügt wird.

    Weitere Informationen über die neuen Spracherweiterungen in Visual Basic 2005 finden Sie auf folgender Website von Microsoft Developer Network (MSDN):
    http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx
    Weitere Informationen zu partiellen Klassen und der Windows Forms-Designer die folgenden MSDN-Website:
    http://msdn2.microsoft.com/en-us/library/ms171843.aspx
  2. Ziehen Sie aus der Toolbox ein Kombinationsfeld-Steuerelement (ComboBox) zu Form1 hinzu.
  3. Klicken Sie mit der rechten Maustaste auf die Bezeichnung "ComboBox1", und klicken Sie dann auf Eigenschaften.
  4. Klicken Sie im Eigenschaftenfenster aktivieren Sie für DropDownStyle die Einstellung, und legen Sie die Eigenschaft auf DropDownList.
  5. Klicken Sie im Eigenschaftenfenster klicken Sie hier, um Elemente auszuwählen, und klicken Sie dann auf die Schaltfläche mit den Auslassungspunkten (...).
  6. String-Auflistungs-Editor Geben Sie Rot, Eiche und rose in verschiedenen Zeilen, und klicken Sie dann auf OK.
  7. Klicken Sie im Menü Debuggen auf Starten, um die Anwendung auszuführen.
  8. Geben Sie Zeilen in der Bezeichnung "ComboBox1".

Informationsquellen

Weitere Informationen finden Sie auf den folgenden MSDN-Website:

ComboBox.DropDownStyle-Eigenschaft
http://msdn2.microsoft.com/en-us/library/system.windows.forms.combobox.dropdownstyle(vs.71).aspx

Eigenschaften

Artikel-ID: 814362 - Geändert am: Freitag, 11. Mai 2007 - Version: 2.8
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Keywords: 
kbmt kbvs2005swept kbvs2005applies kbctrl kbcontrol kbproperties kbdisplay kbwindowsforms kbcombobox kbprb KB814362 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 814362
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com