控件的变量化引用:求助.

dgz988 2008-12-30 01:39:29
在一个窗体上建了50个PANEL,分别命名为P1 --P49 ,现在想动态的改变其中之一的颜色,假设相改变P40的背景颜色,怎么样在引用的时候,定义变量为I=49,引用P(i)代替P49呢?
谢谢了.
想做一个类似友情强档的日历模块的程序.
...全文
69 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dgz988 2008-12-30
  • 打赏
  • 举报
回复
因为主要不做程序这一块了.很久没过来问问题了,现在大家还是这么热心,太高兴了.哈哈.结贴,一楼的兄弟办法不错,二楼的如果要很多就有点费资源,效率有点低,四楼的内部控件编号不是很规则,规则的话这个办法最好.呵呵.

再次谢谢大家.
wangjuenhui520 2008-12-30
  • 打赏
  • 举报
回复
依照楼主的要,我是这样做的


private sub changecolor(byval i as integer)

dim pn as new panel

pn = me.controls("P" & i)

pn.backcolor =color.red

end sub


在调用的时候传递i为你的控件编号,如果你要直接传递名称就把 i的类型改为string ,
pn = me.controls("P" & i) 改为pn = me.controls(i)

如果你想改变连续的几个控件的背景可以增加两的个传递的变量c,d ,类型为integer . 然后写成
for s as integer = c to d

pn = me.controls("P" & i)

pn.backcolor =color.red

next

达到变量调用的效果
gjw_8888 2008-12-30
  • 打赏
  • 举报
回复
ls遍歷的方法不錯
bw555 2008-12-30
  • 打赏
  • 举报
回复
或是遍历me.controls
查找到你的panel
for i=0 to me.controls.count-1
if me.controls.item(i).name="P" & i
return ctype(me.controls.item(i),panel)
end if
next
bw555 2008-12-30
  • 打赏
  • 举报
回复
 Dim arr As New ArrayList
arr.add(p1)
arr.add(p2)
'......把panel依次添加进来


'引用的时候
ctype(arr.item(i),panel)



16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧