Hallo liebe /VB/ freunde!
Ich habe vor ein paar Tagen wieder mit VB angefangen (damals VB2005, nun VB2008-VB2010), und bin auf ein Problem gestoßen:
Ich habe mehrere Forms. In der ersten Form sollen in einer Listbox 2 Arten von Einträgen getätigt werden: Abteilung und Mitarbeiter.
Soweit kein Problem, die Abteilung wird auch mit einem Präfix "+++" in der Listbox gekennzeichnet.
Nun werden in der darauffolgenden Form alle Abteilungen als Groupbox aufgelistet, der Itemname wird zum Groupboxname (z.B. +++ Vertrieb +++). Die Mitarbeiter werden als Buttons in diesen Groupboxen erstellt, ihnen wird je nach Listboxeintrag (z.B. Max Mustermann) das entsprechende Mitarbeiterbild als Button.backgroundimage zugewiesen.
Nun möchte ich auf die einzellnen Mitarbeiter-Buttons klicken können, um mir in einer neuen, aufploppenden Form Details zu dem entsprechnden Mitarbeiter ansehen zu können.
Zunächst mein Code-Teil:
Mein Problem ist nun wie folgt:
ich brauche eine Möglichkeit, den Click auf einen Mitarbeiter-Button festzustellen.
Die Sufu von Google gab mir den Tipp,
das
Global mit withevents zu deklarieren.
Das erzeugt mir in der Form allerdings nur einen Button, dessen Werte nur jedes mal neu überschrieben werden (letzendlich ist nur ein Button zu sehen).
Wie kann ich nun auf die Buttons zugreifen, bzw. "merken" das geklickt wurde? (Klassenmethode? handles button.click?)
Bitte helft mir, ich freue mich über jede Antwort!
Ich habe vor ein paar Tagen wieder mit VB angefangen (damals VB2005, nun VB2008-VB2010), und bin auf ein Problem gestoßen:
Ich habe mehrere Forms. In der ersten Form sollen in einer Listbox 2 Arten von Einträgen getätigt werden: Abteilung und Mitarbeiter.
Soweit kein Problem, die Abteilung wird auch mit einem Präfix "+++" in der Listbox gekennzeichnet.
Nun werden in der darauffolgenden Form alle Abteilungen als Groupbox aufgelistet, der Itemname wird zum Groupboxname (z.B. +++ Vertrieb +++). Die Mitarbeiter werden als Buttons in diesen Groupboxen erstellt, ihnen wird je nach Listboxeintrag (z.B. Max Mustermann) das entsprechende Mitarbeiterbild als Button.backgroundimage zugewiesen.
Nun möchte ich auf die einzellnen Mitarbeiter-Buttons klicken können, um mir in einer neuen, aufploppenden Form Details zu dem entsprechnden Mitarbeiter ansehen zu können.
Zunächst mein Code-Teil:
VB.NET-Quellcode
- Private Sub Overview_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Dim Itemname As String
- Dim CreatePoint As Point
- Dim Counter As Integer
- Counter = employee.lstb_employee.Items.Count - 1
- For I As Integer = 0 To Counter
- Itemname = employee.lstb_employee.Items.Item(I)
- If Itemname.StartsWith("+++") Then
- 'uninteressant für das Problem
- ElseIf Not Itemname.StartsWith("+++") Then
- Y = Y + 20
- X = X + 60CreatePoint = New Point(X, Y)
- Dim Label As New Windows.Forms.LabelDim Button As New Windows.Forms.Button
- Me.Controls.Add(Button)Me.Controls.Add(Label)
- Button.Location = New Point(CreatePoint)
- Button.Name = ItemnameButton.Size = New Size(50, 50)Label.Location = New Point(X, Y + 50)
- Label.Name = Itemname
- [...]
- If Itemname.StartsWith("Max Mustermann") ThenButton.BackgroundImage = System.Drawing.Bitmap.FromFile(My.Application.Info.DirectoryPath & "\..\..\Pictures\Employees\Max Mustermann.jpg")
- Label.Text = "Max" & vbCrLf & "Mustermann"
- ElseIf [...]
- Else
- Button.BackColor = Color.Red
- Label.Text = "Unknown" & vbCrLf & "Employee"
- End If
- Button.BackgroundImageLayout = ImageLayout.Zoom
- Button.BringToFront()
- Button.Show()
- Label.TextAlign = ContentAlignment.TopLeft
- Label.BringToFront()
- Label.Show()
- Y = Y - 20
- End If
- Next
- End Sub
- End Class
Mein Problem ist nun wie folgt:
ich brauche eine Möglichkeit, den Click auf einen Mitarbeiter-Button festzustellen.
Die Sufu von Google gab mir den Tipp,
das
Global mit withevents zu deklarieren.
Das erzeugt mir in der Form allerdings nur einen Button, dessen Werte nur jedes mal neu überschrieben werden (letzendlich ist nur ein Button zu sehen).
Wie kann ich nun auf die Buttons zugreifen, bzw. "merken" das geklickt wurde? (Klassenmethode? handles button.click?)
Bitte helft mir, ich freue mich über jede Antwort!