2016-03-22 13 views
0

Ich habe viele Antworten gesucht und gefunden, bin aber nicht in der Lage, ein bestimmtes Combobox-Element als Teil der Anzeige eines Datensatzes in einem Formular anzuzeigen.Wie man vb.net selectedindex der an arraylist gebundenen combobox einstellt

Das Formular enthält eine Combobox mit einem DropDownList-Stil. Ich habe es mit einer ArrayList genau wie beschrieben on MSDN geladen.

Nachdem die Combobox geladen wird, ich bin ein Datenbank-Datensatz zu lesen, und ich mag das DisplayMember Elemente Combobox ValueMember für einen Datenbankwert gleich das Elements angezeigt werden. Ich habe alles versucht, was mir einfällt, aber der erste DisplayMember Artikel wird immer angezeigt. Ich habe versucht:

cboVehicleBodyType.SelectedIndex = cboVehicleBodyType.FindString(clsVehicle.fk_body_type) 

cboVehicleBodyType.SelectedItem = clsVehicle.fk_body_type 

... und mehrere andere Varianten, ohne Glück.

Die Combobox enthält ca. 180 Body-Typen und ihre Primärschlüssel (geladen aus einer BodyType-Tabelle) und der Datenbankdatensatz für ein Fahrzeug enthält den Primärschlüssel vom Typ body (Fremdschlüssel im Fahrzeugdatensatz).

Wie kann ich den korrekten Körpertyp erhalten, der in der Combobox angezeigt wird?

Antwort

0

mit dem Beispiel von MSDN zu halten, können Sie ein Element wie folgt wählen:

Private Sub SelectItem(box As ComboBox, stateKey As String) 
    For curItem As Integer = 0 To box.Items.Count - 1 
     If DirectCast(box.Items(curItem), USState).ShortName = stateKey Then 
     box.SelectedIndex = curItem 
     Return 
     End If 
    Next 
    End Sub 


    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Dim USStates As New ArrayList() 
    USStates.Add(New USState("Alabama", "AL")) 
    USStates.Add(New USState("Washington", "WA")) 
    USStates.Add(New USState("West Virginia", "WV")) 
    USStates.Add(New USState("Wisconsin", "WI")) 
    USStates.Add(New USState("Wyoming", "WY")) 
    ComboBox1.DataSource = USStates 

    ComboBox1.DisplayMember = "LongName" 
    ComboBox1.ValueMember = "ShortName" 
    SelectItem(ComboBox1, "WY") 
    End Sub 

Dieser Code durchlaufen die Elemente und suchen nach dem Schlüsselwert. FindString sucht nach dem Anzeigewert, der nicht Ihr Schlüssel ist.

Verwandte Themen