none
多个控件的相同事件 RRS feed

  • 问题

  • 请以类似.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

    2012年6月20日 13:05

答案

  • '公共变量
    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)比较好。

    参考代码:


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年6月21日 2:26
    版主

全部回复