动态生成了一个数组按钮 CMD(index) , CMD的个数是根据数据库里的ID生成的,因为ID是随时增加的,所以CMD也是随即增加的!
按钮 单机事件中用 
select case index
case 0
......
end select使每个动态按钮都有各自的单机事件问题是 如果 用 select ,不知道 INDEX MAX是多少,就是通过查找数据库的ID来知道,也可能时时的产生未来动态添加CMD按钮的单机事件!例如:
DB.MDB 
id自动编号里目前MAX 是 3
id
1
2
3在VB中会动态的根据ID最大值产生3个按钮
cmd(1)  cmd(2)  cmd(3)编写单击事件:
select case index
case 1
       ....
case 2
...
case 3
....
end if
如果,用户添加了一条数据,ID 4
SELECT 中没有CASE 4 ,那就不会产生,CMD(4) 的单击事件!我的问题是如何才能动态的产生CMD(4)以后动态添加的单击事件?
---------
我的表达有点差,请各位大侠尽量帮忙,谢谢了! 分我会尽量多给!
-------------------

解决方案 »

  1.   

    如果你每个INDEX都是不同的事件,这个没有办法处理的
      

  2.   

    每个Index处理不同,那就只好手工加了。
      

  3.   

    动态添加控件的代码,你自己改把
    Option ExplicitDim WithEvents cmdSayHello As CommandButton
    Dim WithEvents cmdClose As CommandButtonPrivate Sub cmdClose_Click()
        Unload Me
    End SubPrivate Sub cmdSayHello_Click()
        MsgBox "Hello world!", vbInformation, Me.Caption
    End SubPrivate Sub Form_Load()
        
        Set cmdSayHello = Me.Controls.Add("VB.CommandButton", "cmdSayHello")
        With cmdSayHello
            .Left = 4000
            .Top = 250
            .Width = 1200
            .Height = 350
            .Caption = "&Say Hello"
            .Visible = True
        End With
        
        Set cmdClose = Me.Controls.Add("VB.CommandButton", "cmdClose")
        
        With cmdClose
            .Left = 4000
            .Top = 700
            .Width = 1200
            .Height = 350
            .Caption = "&Close"
            .Visible = True
        End With
    End Sub
      

  4.   

    给你个动态建立控件的代码,你改改把
    Option ExplicitDim WithEvents cmdSayHello As CommandButton
    Dim WithEvents cmdClose As CommandButtonPrivate Sub cmdClose_Click()
        Unload Me
    End SubPrivate Sub cmdSayHello_Click()
        MsgBox "Hello world!", vbInformation, Me.Caption
    End SubPrivate Sub Form_Load()
        
        Set cmdSayHello = Me.Controls.Add("VB.CommandButton", "cmdSayHello")
        With cmdSayHello
            .Left = 4000
            .Top = 250
            .Width = 1200
            .Height = 350
            .Caption = "&Say Hello"
            .Visible = True
        End With
        
        Set cmdClose = Me.Controls.Add("VB.CommandButton", "cmdClose")
        
        With cmdClose
            .Left = 4000
            .Top = 700
            .Width = 1200
            .Height = 350
            .Caption = "&Close"
            .Visible = True
        End With
    End Sub
      

  5.   

    N个BUTTON,N个不同的处理办法,不在代码里写出这么多的处理办法,却要软件实现N种处理过程,有可能吗?
      

  6.   

    必须事先知道哪个Index对应哪个事件才能写出代码
      

  7.   

    看来我的表达有点问题,呵呵! 不过问题解决了!
    给分再简单说一下:
    MDB:
    id   '<-自动编号
    1
    2
    3窗体from,现在有3个按钮,这3个按钮时根据,maxid的值来添加的!
    cmd(1) cmd(2) cmd(3),还有一个添加按钮 cmdadd 单击这个按钮出现添加 ID 字段,即maxid+1   '<- id=5返回from 窗体时则,动态添加了 cmd(4)调用函数,累计添加4。5。6。产生出来的动态cmd数组按钮,可以根据动态添加的TAG标识来区分他们的单击 事件!然后再通过调用,来区分他们的单击事件!
    ------------------------------------------------------------
    有一点我没有表达清楚,不是产生出来的所有按钮,都有不同的事件,是按钮分类事件,就是说:
    cmd(1)cmd(2)是打开事件
    cmd(3)cmd(4)是修改事件
    等等谢谢大家帮助啊