2016-10-20 4 views
-1

Я хотел нажать на кнопку я создал программно, и для того, чтобы сформировать окно сообщения (Visual Basic) Это код, который генерирует кнопку:Как я могу обработать событие click для программно созданного для кнопки?

Dim NodeButton As New Control 
NodeButton.Name = "Button" & NodeID 
NodeButton.BackColor = Color.Red 
NodeButton.Text = NodeID 
NodeButton.Size = New Point(ButtonSize, ButtonSize) 
NodeButton.Location = New System.Drawing.Point(Xcoordinate, YCoordinate) 
frmMain.Controls.Add(NodeButton) 
NodeButton.BringToFront() 
+3

Возможный дубликат [Динамическое нажатие кнопки обработчик события] (http://stackoverflow.com/questions/7375061/dynamic-button-click-event-handler) –

+1

Также [это] (HTTP: // StackOverflow .com/questions/7291461/how-do-i-create-an-event-handler-for-a-softwareatically-created-object-in-vb-net) и [this] (http://stackoverflow.com/ вопросы/21642678/how-can-i-create-dynamic-button-click-event-on-dynamic-button-vb-net) и [this] (http://stackoverflow.com/questions/14948332/how-to -make-a-click-event-for-runtime-created-controls-in-visual-basic-2010) –

+0

Google Ваш заголовок и ответ, вероятно, будут для вас. – Bugs

ответ

1

Просто добавьте EventHandler

AddHandler theButton.Click, AddressOf Me.theButton_Click 

Тогда в вашем методе обработки вам необходимо сравнить sender с вашим объектом кнопки. Если они совпадают, вы можете работать с этой кнопкой.

Public Class Form1 
    Private WithEvents NodeButton As Button 

    Public Sub New() 
     InitializeComponent() 

     Me.NodeButton = New Button() 
     ' Add it to UI 
     AddHandler Me.NodeButton.Click, AddressOf Me.nodeButton_Click 
    End Sub 

    Private Sub nodeButton_Click(sender As Object, e As EventArgs) 
     If (sender Is Me.NodeButton) Then 
      'Do what you want 
     End If 
    End Sub 
End Class 
Смежные вопросы