我在VB中调用controls方法,想添加一些按钮,程序如下:Set cmdObject = frmBrowser.Controls.Add("VB.CommandButton", "btn" & n, Picture2)这样我就能实现按钮名称依次是btn1、btn2、btn3这样的名字,但当我想对动态生成的按钮进行事件处理时(比如click事件),调用cmdObject_click()时发现只能对最后一个生成的按钮进行控制,就是说如果我动态生成5个按钮,只能对第5个进行控制。请问怎么对每个按钮进行相应的控制呢?比如想写一个事件,好象这样的Private Sub btn & i & _Click()......end sub程序中i的位置应该如何处理?请高手指教,谢谢!

解决方案 »

  1.   

    在声明的时候加上WithEvent关键字就行了,不过不能建立数组
    参见http://www.china-askpro.com/msg1/qa98.shtml
      

  2.   

    Private WithEvents NewButton As CommandButton
      

  3.   

    Private WithEvents NewButton As CommandButton   ′新增控件的单击事件
      Private Sub NewButton_Click()
      MsgBox ″您选中的是动态增加的按钮!″
      End Sub
      

  4.   

    谢谢各位的帮忙,不过可能是我没说明白,我也声名这个了Private WithEvents cmdObject As CommandButtonSet cmdObject = frmBrowser.Controls.Add("VB.CommandButton", "btn" & n)可以实现多个按钮的生成,并且每个按钮名叫btn1,btn2,btn3……我现在想做的是,如果有人点击了btn2,应该如何写触发事件呢?就是 Private Sub btn2_Click() 事件该如何表达呢?我试着用cmdObject_click()对相应的按钮进行操作,可只能对最后一个生成的按钮进行事件操作,其他的还是没响应,应该如何控制其他按钮的事件呢?