如何动态创建picturebox?

来源:百度知道 编辑:UC知道 时间:2024/09/20 19:44:03
为什么我用 dim p as picturebox这样不能使用?
具体的还要做什么 麻烦给出具体代码,谢谢!
受不了,除了这个有没有别的方法了?我只是想利用下
在模块里面封装成一个函数的话,我怎么知道程序里面有那些窗体?可能你说用for each in forms集合访问,但是如果我这个程序是一个没有任何窗体的程序呢?仅仅是一个用sub main作为入口的模块呢???
=======================================
我只是利用一下picturebox控件并不想把它添加到窗体啊,如果我这段代码是封装在模块里面呢,那你还能用Me.Controls.Add("VB.PictureBox", "xx")吗?
=======================================
不是添加控件的,我还是多贴一些代码吧
Private Sub Command1_Click()
Dim xx As PictureBox
With xx
.Top = 0
.Left = 0
.Width = 500
.Height = 500
.Visible = True
.BackColor = vbBlack
End With
xx.Picture = LoadPicture("c:\1.bmp")
SavePicture xx, "c:\1.jpg"
End Sub

如果你只是想拿个容器来保存图片的话,用StdPicture就可以了
PictureBox要使用的话需要加载到窗体上.你那种定义方法不行的.

看来你没有学到“对象变量”这节的内容。你这样是定义了一个picturebox类型的对象变量,就像dim aa as integer 一样,因此你的xx还是空值,你必须给他赋值才能使用,如:
dim xx as picturebox
set xx=picture1
这样你改变xx的属性就等于改变picture1的属性,这样不是动态创建的picturebox

要动态的创建picturebox就要像ljl88900说的那样:

Set xx = Me.Controls.Add("VB.PictureBox", "xx")

然后再设置其属性!!

不想让它在窗体上的话,最后加一句:

Controls.Remove xx

你可以这样做

Private Sub form_load()
Set xx = Me.Controls.Add("VB.PictureBox", "xx")
xx.Top = 0
xx.Left = 0
xx.Width = 500
xx.Height = 500
xx.Visible = True
xx.BackColor = vbBlack
End Sub

因为Dim xx As PictureBox只是定义了xx是一个PictureBox的壳,里面要装入具体的内容才行,否则显示为nothing。所以,下面的代码就无法进行下去了。

要装入具体的内容,必须使用动态创建picturebox的语句,即:Set xx = Me.Controls.Add("VB.PictureBox", "xx")。

推而广之,动态创建其他的控件也必须使用Controls.