定义了一个对象变量数组,但不能响应事件,请问各位大侠有什么办法?
Private pic() As PictureBox   '定义对象变量
Dim P_Num As LongPrivate Sub LoadPic()
    ReDim Preserve pic(Ubound(pic)+1)
    Set pic(Ubound(pic)+1) = Me.Controls.Add("vb.PictureBox", "NPicTureBox" & P_Num)
    pic(Ubound(pic)+1).Visible = True
    P_Num=P_Num+1
End SubPrivate Sub Form_Load()
    fMainForm.Show
    ReDim pic(0)
    LoadPic
End Sub
怎样才能使pic()中的成员响应MouseMove事件

解决方案 »

  1.   

    告诉你一个解决问题的方法,投机取巧你先画一个AutoPicture,INDEX = 0 ,VISIBLE=FALSEPrivate   Sub   LoadPic() 
       load AutoPicture(P_Num)
       AutoPicture.Visible   =   True 
       AutoPicture.move(.........)
       P_Num=P_Num+1 
    End   Sub
    Private   Sub   Form_Load() 
            fMainForm.Show
            P_Num=1
            LoadPic 
    End   Sub 
    Private Sub AutoPicture_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
     //这里增加处理函数
    End Sub
      

  2.   

    不行啊
    Private   Sub   AutoPicture_MouseMove(Index   As   Integer,   Button   As   Integer,   Shift   As   Integer,   X   As   Single,   Y   As   Single) 
      //这里增加处理函数 
    End   Sub
    此过程编译时出错,提示“过程声明与同名事件或过程的描述不匹配”
    MouseMove事件中的形参表中本身没有 Index ,所以会出错,删除此形参则可以通过编译,单执行到LoadPic 的第一条语句
    load AutoPicture(P_Num)时又出现实时错误'13' 类型不匹配,原因是AutoPicture本身是一个实例。
    不过还是谢谢了^_^
      

  3.   

    针对一楼的朋友,我更正我的一个错误,仔细查看了一下MSDN,MosueMove 事件的形参表中确实可以有
    Index ,用来唯一地标识一个在控件数组中的控件。先前是我忘了把AutoPicture 的 Index 值设为0,
    如此更改之后也还可以用,谢谢了!
      

  4.   

    Private WithEvents Pic() As PictureBox