vb image控件数组不显示
Form=1To100pp="cd"+LTrim(Str(m))+".gif"apath=App.Pathppath=apath+"\"+ppIfDir(ppath,vb...
For m = 1 To 100
pp = "cd" + LTrim(Str(m)) + ".gif"
apath = App.Path
ppath = apath + "\" + pp
If Dir(ppath, vbHidden + vbReadOnly + vbSystem) = "" Then
Exit For
End If
Load Image2(m)
Image2(m).Visible = True
Image2(m).Picture = LoadPicture(ppath)
Image2(m).Width = Screen.Width * 0.12
Image2(m).Height = Image2(m).Width * 0.3
Image2(m).Left = Screen.Width * 0.05
Image2(m).Top = Screen.Height * (0.2 + 0.07 * m)
Image2(m).Visible = True
Next
最终运行只显示了预设的image2(0)
目录中cd1.gif 到cd6.gif都存在,并且逐行调试时确实循环了6次 展开
pp = "cd" + LTrim(Str(m)) + ".gif"
apath = App.Path
ppath = apath + "\" + pp
If Dir(ppath, vbHidden + vbReadOnly + vbSystem) = "" Then
Exit For
End If
Load Image2(m)
Image2(m).Visible = True
Image2(m).Picture = LoadPicture(ppath)
Image2(m).Width = Screen.Width * 0.12
Image2(m).Height = Image2(m).Width * 0.3
Image2(m).Left = Screen.Width * 0.05
Image2(m).Top = Screen.Height * (0.2 + 0.07 * m)
Image2(m).Visible = True
Next
最终运行只显示了预设的image2(0)
目录中cd1.gif 到cd6.gif都存在,并且逐行调试时确实循环了6次 展开
3个回答
展开全部
我用你同样的代码,在我的电脑上能够显示出图片。当然,因为测试的图片不同,我稍微改动了一下:
Private Sub Command1_Click()
Dim m As Integer, ppath As String
For m = 1 To 100
ppath = "e:\tmp\cd" & m & ".gif"
If Dir(ppath, vbHidden + vbReadOnly + vbSystem) = "" Then Exit For
Load Image2(m)
Image2(m).Visible = True
Image2(m).Picture = LoadPicture(ppath)
Image2(m).Width = Screen.Width * 0.12
Image2(m).Height = Image2(m).Width * 0.3
Image2(m).Left = Screen.Width * 0.05
Image2(m).Top = Screen.Height * (0.2 + 0.07 * m)
Image2(m).Visible = True
Next
End Sub
或许是因为你把form的ScaleMode属性改过了?改回1就正常了
Private Sub Command1_Click()
Dim m As Integer, ppath As String
For m = 1 To 100
ppath = "e:\tmp\cd" & m & ".gif"
If Dir(ppath, vbHidden + vbReadOnly + vbSystem) = "" Then Exit For
Load Image2(m)
Image2(m).Visible = True
Image2(m).Picture = LoadPicture(ppath)
Image2(m).Width = Screen.Width * 0.12
Image2(m).Height = Image2(m).Width * 0.3
Image2(m).Left = Screen.Width * 0.05
Image2(m).Top = Screen.Height * (0.2 + 0.07 * m)
Image2(m).Visible = True
Next
End Sub
或许是因为你把form的ScaleMode属性改过了?改回1就正常了
展开全部
好久没接触过编程语言了,VB用循环语句建立控件数组,首先好像你要自己建立控件数组,比如先建立image2(0),image2(1)两个控件,后续的2-100个控件再用循环语句建立
For m=2 to 100
load image2(m)
image2(m).Enable=true
image2(m).visible=true
...
next m
在用循环语句建立后续控件之前,必须保证前面的控件是控件数组。还有,后续控件的位置算好,根据情况不要和前面的控件重叠,以致看不到,以为没有建立成功。
我好久没接触了,基本思路是这样的,具体的语句对不对也不记得了。
For m=2 to 100
load image2(m)
image2(m).Enable=true
image2(m).visible=true
...
next m
在用循环语句建立后续控件之前,必须保证前面的控件是控件数组。还有,后续控件的位置算好,根据情况不要和前面的控件重叠,以致看不到,以为没有建立成功。
我好久没接触了,基本思路是这样的,具体的语句对不对也不记得了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
会不会被其他控件挡住了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询