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次
展开
 我来答
网海1书生
科技发烧友

2010-01-07 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
我用你同样的代码,在我的电脑上能够显示出图片。当然,因为测试的图片不同,我稍微改动了一下:

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就正常了
百度网友e01f298
2010-01-07 · TA获得超过600个赞
知道小有建树答主
回答量:479
采纳率:0%
帮助的人:237万
展开全部
好久没接触过编程语言了,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
在用循环语句建立后续控件之前,必须保证前面的控件是控件数组。还有,后续控件的位置算好,根据情况不要和前面的控件重叠,以致看不到,以为没有建立成功。
我好久没接触了,基本思路是这样的,具体的语句对不对也不记得了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhang_n
2010-01-07 · 超过24用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:49.2万
展开全部
会不会被其他控件挡住了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式