Динамически создание обьекты
Помогите пожалуйста. Как в VB 2005 Net динамически создать кнопки и обработать нажатие на них??? Заранее спасибо=)
|
Smile, в простейшем случаи код обработчика уже должен быть написан. А создание за малым.
Код:
Dim DynamicButton As New Button
With DynamicButton
.Parent = Me
.Location = New Point(10, 10)
.Size = New Size(150, 40)
.Text = "Динамически созданная кнопка"
End With
AddHandler DynamicButton.Click, AddressOf DynamicButton_Click 'Или другое имя обработчика
'...
Private Sub DynamicButton_Click(ByVal Obj As Object, ByVal eventArgs As EventArgs)
'... обрабатываем
End sub
|
А вот как сделать обработчик если у нас массив этих кнопок???
Код:
Dim i As Integer
Dim DynamicButton(3) As Button
For i = 1 To 3
DynamicButton(i) = New Button
With DynamicButton(i)
.Parent = Me
.Location = New Point(10 * i, 10 * i)
.Size = New Size(40, 40)
.Text = ""
End With
Next
|
Smile, например можно повесить все кнопки на один обработчик, а там проверять, что за кнопка нажата.
Код:
For i = 1 To 3
'...
AddHandler DynamicButton(i).Click, AddressOf DynamicButton_Click
Next
'...
Private Sub DynamicButton_Click(ByVal Obj As Object, ByVal eventArgs As EventArgs)
Dim CurButton As Button = Obj
' В идеале должны получить имя кнопки здесь
' Dim ButtonName As String = CurButton.Name
' Но увы там пусто, так что немного по другому,
' определяем нажатую кнопку
Select Case (CurButton.Location.X / 10)
Case 1
MsgBox("Привет, кнопка № 1", MsgBoxStyle.Information, "Нажата кнопка")
Case 2
MsgBox("Привет, кнопка № 2", MsgBoxStyle.Information, "Нажата кнопка")
Case 3
MsgBox("Привет, кнопка № 3", MsgBoxStyle.Information, "Нажата кнопка")
Case Else
MsgBox("Привет, неизвестная кнопка", MsgBoxStyle.Information, "Нажата кнопка")
End Select
End Sub
|
Время: 01:26.
© OSzone.net 2001-