VB程序员博客

VB程序开发

Private WithEvents pic1 As picturebox
Private Sub Command1_Click()
Set pic1 = Controls.Add("vb.picturebox", "picture1")
pic1.Visible = True
pic1.Move 2000,200,200,200

End Sub
这是个点击按钮后动态生成一个picture1控件的简单程序。
但是我要求点击一次就生成一个picture控件,而且可以修改picture控件的属性,和响应它的事件.由于生成picture控件较多,希望用循环编写,但是VB好像不支持数组对象名,
难道要一个一个复制粘贴 ,pic1一直从贴到pic100不成。(而且完成之后要一个个可以拖动,所以不能用load方法 生成控件数组)

picClass:
Public WithEvents pic1 As PictureBox

Form1:
Dim picClass()  As New picClass

Private Sub Command1_Click()
Dim i As Integer
i = 0
For i = 0 To 4
    Set picClass(i).pic1 = Controls.Add("vb.picturebox", "picture" & i)
    picClass(i).pic1.Visible = True
    picClass(i).pic1.Move 2000 + i * 300, 200, 200, 200

Next
End Sub

Private Sub Form_Load()
    ReDim picClass(5) As New picClass
End Sub

我按你说的把
Public WithEvents pic1 As PictureBox
写入了类模块中从class1中,
将Dim picClass()  As New picClass

Private Sub Command1_Click()
Dim i As Integeri = 0
For i = 0 To 4
    Set picClass(i).pic1 = Controls.Add("vb.picturebox", "picture" & i)
    picClass(i).pic1.Visible = True
    picClass(i).pic1.Move 2000 + i * 300, 200, 200, 200
Next
End Sub
Private Sub Form_Load()
    ReDim picClass(5) As New picClass
End Sub

写入了form1中
但是运行后出现编译错误:用户类型未定义
光标在picClass()  As New picClass上

清楚了原来是没有改类模块的名字,呵呵谢谢桃子老兄拉

按照您的方法完全可以应用
但是我要对每个PICTURE窗口执行MOUSE事件编写语句时
Private Sub picclass(1).pic1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
显示编译错误,缺少标示符。我的基础不是很好,加入要实现MOUSE事件我该怎么编写语句呢!麻烦了!

看私信别忘记给分呵呵

Private Sub pic1_MouseDown(index as integer,Button As Integer, Shift As Integer, X As Single, Y As Single)

试试看


标签: , , ,