积极答复者
多个控件的相同事件

问题
-
请以类似.net方法帮忙修改下列语句,用以得到类似vb6控件数组类似的功能,目的是简化程序,谢谢!
dim x(9) as label
x(0)=label1 : x(1)=label2 : x(2)=label3 : x(3)=label4 : x(4)=label5
x(5)=label6 : x(6)=label7 : x(7)=label8 : x(8)=label9 : x(9)=label10
for I as int16=0 to 9
AddHandler x(I).Click, New System.EventHandler(AddressOf Me.x_Click)
next
private sub x_click(……)
'在该过程内需要将用户单击x时能将下标的值传递过来,以处理一组具有相同结构的语句,例如:
messagebox.show(cstr(下标值),"测试")
end sub
答案
-
'公共变量 Dim labels As New List(Of Label) '动态添加事件和名称,不重复! For I as Integer = 0 To 某个数字 dim lb As New Label() lb.Name = "Label" & I.ToString() lb.Text = lb.Name AddHandler lb.Click………… labels.Add(lb) Next '事件解析 Private Sub X_Click(sender As Object, e as EventArgs) dim lb as Label = CType(sender,Label) MsgBox(lb.Name.Replace("Label","")) End Sub
首先不推荐使用数组,因为数组是定场,进一步考虑变长或者删减等原因,用List(Of Label)比较好。
参考代码:
- 已标记为答案 小小芝麻开门 2012年6月21日 3:00
全部回复
-
'公共变量 Dim labels As New List(Of Label) '动态添加事件和名称,不重复! For I as Integer = 0 To 某个数字 dim lb As New Label() lb.Name = "Label" & I.ToString() lb.Text = lb.Name AddHandler lb.Click………… labels.Add(lb) Next '事件解析 Private Sub X_Click(sender As Object, e as EventArgs) dim lb as Label = CType(sender,Label) MsgBox(lb.Name.Replace("Label","")) End Sub
首先不推荐使用数组,因为数组是定场,进一步考虑变长或者删减等原因,用List(Of Label)比较好。
参考代码:
- 已标记为答案 小小芝麻开门 2012年6月21日 3:00