如题,就像vb中生成控件,能够动态生成、拖放和在相应事件里执行代码

解决方案 »

  1.   

    用Controls.Add添加控件Dim WithEvents mypic As PictureBoxPrivate Sub Command1_Click()
        Set mypic = Controls.Add("VB.PictureBox", "mypic")
        mypic.Left = 50
        mypic.Top = 50
        mypic.Visible = True
    End Sub至于拖放操作,在程序中设置好mypic控件的有关属性后,处理mypic的有关事件即可
    注意:
    如果是控件数组的话,建议采用:
    load 控件数组名(索引)
    的方法添加控件
      

  2.   

    '可先手工画一个控件,Visable设置为False,Index设置为0
    '若需要多个就用load object(index)来加载,并把它们的visable设置为true;不需要多个就真接把原有的那个的visable设成显示就行了。Private Declare Function ReleaseCapture Lib "user32" () As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Sub Command1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
    ReleaseCapture                                     移动控件'
    SendMessage Command1(Index).hwnd, &HA1, 2, 0&
    End If
    End Sub
    Private Sub Form_Click()
    On Error GoTo endsub
    For i = 1 To 5
    Load Command1(i)                        '生成控件
    Command1(i).Top = Command1(i - 1).Top
    Command1(i).Left = Command1(i - 1).Left + Command1(i - 1).Width
    Command1(i).Visible = True
    Next
    Exit Sub
    endsub:
    End Sub