Я создал пользовательский класс (DataGroupBoxControl), который в основном представляет собой GroupBox с одной или несколькими панелями внутри. Каждая панель имеет две метки рядом, как показано ниже. введите описание изображения здесь
Объект позволяет передавать в него DataTable, который определяет, сколько строк панелей создается и отображается. Я бы хотел, чтобы пользователь мог щелкнуть одну из надписей на панели и сделать «что-нибудь».
Вот процедура внутри класса, который создает надписи.
Public Class DataGroupBoxControl
Inherits GroupBox
Public DataLabels As New List(Of DataLabelControl)
Public Sub BindData(ByVal ds As DataTable)
Dim colItem As Integer = 0
For Each col As DataColumn In ds.Columns
DataLabels.Add(New DataLabelControl)
For Each row As DataRow In ds.Rows
DataLabels(colItem).TitleLabel.Text = col.ColumnName & " " & _Separator
DataLabels(colItem).TitleLabel.Name = col.ColumnName
If IsNumeric(row.Item(colItem)) Then
If row.Item(colItem).ToString.IndexOf(".") <> -1 Then
DataLabels(colItem).ValueLabel.Text = Decimal.Parse(row.Item(colItem)).ToString("c")
Else
DataLabels(colItem).ValueLabel.Text = row.Item(colItem)
End If
End If
DataLabels(colItem).ValueLabel.Name = row.Item(colItem)
DataLabels(colItem).Top = (colItem * DataLabels(colItem).Height) + 20
DataLabels(colItem).Left = 5
Me.Controls.Add(DataLabels(colItem))
Me.Height = Me.Height + DataLabels(colItem).Height
DataLabels(colItem).Show()
Next
colItem += 1
Next
End Sub
Гдеи как мне создать обработчик события Label Click? И затем получить доступ к этому событию из моей основной формы с помощью следующего объекта:
Public AccountsGroupBox As New DataGroupBoxControl