Me.controls.item(i),里面的i是指。。。?
vb.net吧
全部回复
仅看楼主
level 4
a380474035 楼主
菜鸟一个,Me.controls.item(i)里的i到底指的控件的哪个属性?一开始以为可以用Tapindex索引,就是我的Button1.Tapindex=0,可是运行后发现Me.controls.item(0).Name=Button67(就是不是Button1),我窗体上就只有Button控件,没其他的了
2014年11月25日 05点11分 1
level 4
a380474035 楼主
没人回?
2014年11月25日 06点11分 2
level 12
要看你的这个 i 这个变量是用什么方式进行循环的。
2014年11月25日 07点11分 3
额。。不太明白哎,能举个例子说下吗,这个i的循环方式如果是+1的呢,i=i+1
2014年11月25日 08点11分
大神,要怎样弄才对?看下后面楼的图片
2014年11月25日 09点11分
回复 a380474035 :这个还真是没有这么去循环过它
2014年11月26日 01点11分
level 13
应该就是TABINDEX吧
2014年11月25日 09点11分 4
好像不是。。我试过了,对不上号的
2014年11月25日 09点11分
level 4
a380474035 楼主
2014年11月25日 09点11分 5
level 4
a380474035 楼主
Button67.Tapindex=76是对的,我自己调的。可是对应前面那个i。。。i=0的话不是应该显示Button1吗
2014年11月25日 09点11分 6
你的TABINDEX 怎么变成TAPINDEX了?
2014年11月25日 09点11分
不是,我打错了,不好意思。。没注意到
2014年11月25日 09点11分
level 4
a380474035 楼主
不科学。。我用For each遍历控件把它们的Tapindex值都变为0后,随着i的变化,后面获取的Name却一直不变了。。说明它还是和Tapindex值有关
2014年11月25日 09点11分 7
taP or taB ?
2014年11月25日 09点11分
回复 zhengtiger2003 :不好意思,写错了,是Tab
2014年11月25日 09点11分
level 4
a380474035 楼主
楼上的大神不好意思。。那个Tabindex我写错了,但代码里的是对的,额,我现在的解决方法是,把那个i换为控件数组的上界-i,因为我发现那个是倒着来的。。暂且就先这样弄吧
2014年11月25日 09点11分 8
level 12
如果你实在没有办法,你可以用动态去创建这个控件,再用循环出来,应该不会错。
2014年11月26日 01点11分 9
嗯,谢谢大神了,因为发现了它那个Item(i)的输出是倒过来的,所以暂时的解决方法是把item(i)变为item(数组上界-i)
2014年11月26日 01点11分
level 4
这里的me是窗体吧,那个i就是你画按钮到窗体上的顺序了。具体可以看窗体的另一个隐藏的design文件,里面是vb自动根据你画上去的顺序而写出来的一条条me.controls.add方法。
2015年01月14日 17点01分 10
level 13
Item编号与调用Add的顺序有关
--来自相机+平板电脑+手机融合成的的Lumia 1520
2015年01月16日 16点01分 11
level 12
Controls集合中控件的索引就是控件的Z层叠顺序
z层叠顺序决定当两个控件有一部分或者完全重叠的时候,哪个控件显示在上面
(究竟是z值大的显示在上面还是z值小的显示在上面各种框架中不同,一般是大的显示在上面)
WinForm的控件没有ZIndex之类的属性来设置z层叠顺序
控件在Controls集合中的索引就把这个工作也包揽了
在Controls集合中索引小的显示在上面
一般来说,就像List<T>一样,你最先添加的控件索引值为0,后添加的就1,2,3,4一直递增
所 以默认情况下先添加的控件显示在最上面(当然,这个添加不是指你在窗口设计器里“画”的顺序,而是用代码往Controls集合中添加控件。你去看窗口设 计器生成的代码,后画上去的控件是先添加到Controls集合中的),这种行为不是很直观(一般都会认为后添加的会盖住先添加的)
这个顺序也可以人为修改
控件自己有BringToFront和SendToBack方法来改变自己在Controls集合中索引(看方法名就知道是提升和降低z层叠顺序)
ControlCollection(Controls属性的类型)有SetChildIndex方法来设置控件的索引,GetChildIndex函数来查询控件的索引
另外
z层叠顺序(也就是控件在Controls集合中的索引)不仅影响控件重叠时哪个控件显示在上面
当两个可以获得焦点的控件具有相同的TabIndex时,Z层叠顺序小的那个会先获得焦点
ControlCollectionl内部会维护所有控件的索引,保证索引值是从0开始,并且是连续递增的
比如你的窗口只有5个子控件,现在你调用SetChildIndex,试图把某一个控件的索引值设为100,结果就是把那个控件的索引值设为了4,而不会引发异常。(你把某个控件的索引设为-1这样的无效值也会导致控件的索引值被设置为最大)
窗口Controls集合包含窗口的所有子控件
即便你不显式地调用Controls.Add();方法,而是用其他方法来建立控件和窗口之间的父子关系,控件也会被添加到Controls集合中。比如设置控件的Parent属性:
Button btn=newButton();
btn.Parent=this;
2015年01月17日 08点01分 12
1