2
使用VB 2008 Express。从控制阵列中的按钮获取点击事件
单击按钮时将代码附加到按钮上很容易,因为它们是表单上的静态按钮;只需双击表单设计器上的按钮并向事件添加代码即可。
我有一系列在控件数组中生成的按钮,所以它们是在类中生成的,并且在表单中没有按钮,直到运行时。
因此,新手问题可能很简单的答案......我如何才能为按钮的点击事件输入代码,直到它们在运行时实例化为类时才会出现?
使用VB 2008 Express。从控制阵列中的按钮获取点击事件
单击按钮时将代码附加到按钮上很容易,因为它们是表单上的静态按钮;只需双击表单设计器上的按钮并向事件添加代码即可。
我有一系列在控件数组中生成的按钮,所以它们是在类中生成的,并且在表单中没有按钮,直到运行时。
因此,新手问题可能很简单的答案......我如何才能为按钮的点击事件输入代码,直到它们在运行时实例化为类时才会出现?
我认为,你会这样做的常规按钮。
你想对每个按钮采取什么行动?如果每个按钮的操作都不相同,您能否举例说明它的样子?
编辑:原油代码领先
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim button As Button()
ReDim button(2)
Dim button1 As New Button
button1.Top = 0
button1.Height = 100
button1.Text = "hello"
Dim button2 As New Button
button2.Top = 200
button2.Height = 100
button2.Text = "world"
button(0) = button1
button(1) = button2
For i As Integer = 0 To 1
'** This is where all the buttons are tied, to a common handler
AddHandler button(i).Click, AddressOf doSomething
Next
Me.Controls.AddRange(button)
End Sub
Protected Sub doSomething(ByVal sender As Object, ByVal e As EventArgs)
Dim thisButton As Button
thisButton = sender
thisButton.BackColor = Color.DarkBlue
thisButton.Text = "clicked"
End Sub
点击后,我想将按钮切换到不同的背景和前景颜色,改变的.text属性BTN(I)为好。每个按钮都有相同的操作(这是一个在“常规”和“选定”之间切换的网格)。我只是不清楚如何知道在单击btn(i)时如何将代码截取到代码中,然后运行代码以更改或切换属性,因为它不在表单的设计选项卡中。 – 2010-02-22 13:50:47
@shahkalpesh re:编辑 - 你的代码基本上是添加一个名为button(i)的事件处理程序。点击一个名为doSomething的子程序,然后创建子程序来完成我想要的操作,而这两个都是类定义的一部分,是吗? (确保我明白发生了什么......我想学习,而不是鹦鹉代码,使其简单地工作:-)我想也可能需要谷歌更多的信息“定制”,以定制它。 – 2010-02-22 15:27:07
是的。 'doSomething'与所有按钮的点击事件相关联。阅读有关.net中的事件/代表。你会在net/stackoverflow上找到很多很好的例子。 – shahkalpesh 2010-02-22 15:50:03