JavaScript Editor
JavaScript Debugger|
| ||
Your new program lets the user add options to customize things, and you want to display a new button for each option. Is there a way to add buttons to a Visual Basic program at run time?
Yes, there is. In fact, we've already seen how to do that earlier in this chapter, in the topic "Imitating Control Arrays." We declared new buttons there and added them to an imitation control array. There, all the buttons used the same event handler, but we can modify that code so each new button has its own event handler, like this:
Public Class Form1
Inherits System.Windows.Forms.Form
Dim WithEvents Button1 As Button
Dim WithEvents Button2 As Button
Dim WithEvents Button3 As Button
Friend WithEvents Button4 As Button
Friend WithEvents TextBox1 As TextBox
'Windows Form Designer generated code
Private Sub Button4_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button4.Click
Button1 = New Button()
Button2 = New Button()
Button3 = New Button()
Button1.Size = New Size(80, 30)
Button1.Location = New Point(115, 20)
Button1.Text = "Button 1"
Button2.Size = New Size(80, 30)
Button2.Location = New Point(115, 60)
Button2.Text = "Button 2"
Button3.Size = New Size(80, 30)
Button3.Location = New Point(115, 100)
Button3.Text = "Button 3"
Controls.Add(Button1)
Controls.Add(Button2)
Controls.Add(Button3)
AddHandler Button1.Click, AddressOf Button1_Click
AddHandler Button2.Click, AddressOf Button2_Click
AddHandler Button3.Click, AddressOf Button3_Click
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs)
TextBox1.Text = "You clicked button 1"
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs)
TextBox1.Text = "You clicked button 2"
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs)
TextBox1.Text = "You clicked button 3"
End Sub
End Class
That's all it takes.
|
| ||
Free JavaScript Editor
JavaScript Editor