Hallo Spezis,
Zur Laufzeit erzeuge ich in einem TableLayoutPanel diverse Panels, die bekommen unterschiedliche Farben und Inhalte deswegen dieser Weg.
Desweiteren wird aus einer DataTable Personeninformationen gelesen und eine ComboBox in einem Panel erzeugt und mit den Nachnamen gefüllt.
Das funktioniert bis dahin tadellos.
Nun wenn ich einen Namen aus dieser ComboBox auswähle, soll in dem Panel dadrüber der Vorname in einem Label erscheinen.
Ich hoffe mir kann geholfen werden
Zur Laufzeit erzeuge ich in einem TableLayoutPanel diverse Panels, die bekommen unterschiedliche Farben und Inhalte deswegen dieser Weg.
Desweiteren wird aus einer DataTable Personeninformationen gelesen und eine ComboBox in einem Panel erzeugt und mit den Nachnamen gefüllt.
Das funktioniert bis dahin tadellos.
VB.NET-Quellcode
- Private Sub ComboBox_setzen()
- Dim cbx As ComboBox
- For i As Integer = 1 To 8
- cbx = New ComboBox
- With cbx
- .Name = "cbxIH_" & i
- .Dock = DockStyle.Fill
- .Font = New Font("Arial", 12)
- End With
- For Each row As DataRow In myds.Tables(0).Rows
- If i <= 3 Then ' Elektriker
- If row.Item(3).ToString.Substring(0, 2) = "EW" Then
- cbx.Items.Add(row.Item(1))
- End If
- Else ' i >= 4 --> Schlosser
- If row.Item(3).ToString.Substring(0, 2) = "SP" Then
- cbx.Items.Add(row.Item(1))
- End If
- End If
- Next
- Dim myPanel As Control = TLP_Plan.GetControlFromPosition(i, 1)
- myPanel.Controls.Add(cbx)
- AddHandler cbx.SelectedIndexChanged, AddressOf Combobox_Auswahl
- Next
- End Sub
Nun wenn ich einen Namen aus dieser ComboBox auswähle, soll in dem Panel dadrüber der Vorname in einem Label erscheinen.
VB.NET-Quellcode
- Private Sub Combobox_Auswahl(sender As Object, e As System.EventArgs)
- AktuellesObj = CType(sender, ComboBox).Text
- AktuellePos = CType(sender, ComboBox)
- Dim foundRows() As Data.DataRow
- Dim mytable As DataTable = myds.Tables(0)
- foundRows = mytable.Select("Nachname LIKE '" & AktuellesObj.ToString & "'")
- Dim lbl_Vor As Label
- lbl_Vor = New Label
- With lbl_Vor 'Vorname
- .Name = "lbl_" & AktuellesObj.ToString
- .Text = foundRows(0).Item(2).ToString
- .Dock = DockStyle.Fill
- .TextAlign = ContentAlignment.MiddleLeft
- .Font = New Font("Arial", 12)
- .AutoSize = False
- End With
- 'Ab dieser Stelle will es nicht mehr. Was mach ich falsch?
- Dim panelname = AktuellePos.Parent.Name.ToString
- Dim panelnameint = CInt(Strings.Right(panelname, 1)) - 1
- Dim myPanelVorname As New Panel
- myPanelVorname = Nothing
- myPanelVorname.Name = Replace(panelname, Strings.Right(panelname, 1), CStr(panelnameint)) 'Hier fliegt der es raus mit: "NullReferce Exception"
- myPanelVorname.Controls.Add(lbl_Vor)
- End Sub
Ich hoffe mir kann geholfen werden