Code: Dim doc As New System.Xml.XmlDocument() Dim dom As New Xml.XmlDocument dom.Load(Application.StartupPath & ".\serverlist.xml") cbologin.Items.Clear() For Each node As Xml.XmlNode In dom.SelectNodes("//conf/server") If cbologin.Items.Add(node.InnerText) Then If doc.GetElementsByTagName("Benutzer")(0) IsNot Nothing Then txtuser.Text = doc.GetElementsByTagName("Benutzer")(0).InnerText If doc.GetElementsByTagName("Passwort")(0) IsNot Nothing Then txtpassword.Text = doc.GetElementsByTagName("Passwort")(0).InnerText End If End If End If Next
Warum legst du nicht einfach eine Klasse an, welche als Properties deine XML-Attribute hat. Dann kannst du eine Collection aus Objekten dieser Klasse erzeugen, indem du das XML deserialisierst (Stichworte "Serializble" Attribut und XmlSerializer) und die Collection an die DataSource der Combobox bindest. Das könnte dann in etwa so aussehen:
Dim meineListe As List(Of KeyValuePair(Of String, ServerData))
ServerData ist eine Klasse mit den Properties Server, UserID und Password. In LeseServerdaten() liest du deine XML-Datei ein und erzeugst eine Liste von KeyValuePairs. Die Textboxen kannst du dann im SelectedIndexChanged-Event der Combobox füllen:
Private Sub cboServer_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboServer.SelectedIndexChanged
If (cboServer.SelectedIndex = -1) Then Return End If
Dim xml_doc As New XmlDocument xml_doc.Load("serverlist.xml") Dim SearchList As XmlNodeList = xml_doc.SelectNodes("employee/user/srv")
For Each Search As XmlNode In SearchList cbologin.Items.Add(Search.InnerText) Next
cbologin.SelectedIndex = 0 End Sub Private Sub cbologin_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbologin.SelectedIndexChanged 'Auslesen der Benutzer und password Dim xmlFile As XDocument = New XDocument() xmlFile = XDocument.Load("serverlist.xml") Dim auswahlName As String = TryCast(cbologin.SelectedItem, String) Dim user = (From xNode In xmlFile.Root.Descendants("user") Where xNode.Element("srv").Value = auswahlName Select xNode.Element("benutzer").Value).FirstOrDefault() Dim pass = (From xNode In xmlFile.Root.Descendants("user") Where xNode.Element("srv").Value = auswahlName Select xNode.Element("pwd").Value).FirstOrDefault() ' Textboxen txtuser.Text = user txtpassword.Text = pass