永发信息网

winform 中 遍历整个窗体中所有的控件,他按照一个怎么样的顺序来,遍历的呢?

答案:6  悬赏:70  手机版
解决时间 2021-01-29 09:40
不解,,请那位大侠,,帮帮忙,,
为什么?我设置了tabIndex 值 ,但是并没有改变遍历时的顺序,
我又在InitializeComponent()设计器方法中,改变控件显示的位置,还是没有效果呢?
他的遍历顺序是按照最后一个控件来,遍历的,,
所以导致我在验证的时候,如果用遍历整个窗体中控件来研制是否为空值的话,就不行了。。
急啊
!!!
在线等,,,帮帮忙,,,谢谢了。。
最佳答案
控件初始化的时候,都是用Controls.Add来添加的,Controls类似一个Array,最后Add的控件,肯定是在Array的第一个..遍历的顺序应该是Add的倒序来的...最后一个Add的控件被第一个选出来.
按照这个思路,我相信你可以想到很多种解决办法了...
全部回答
支持lcg1986 的说法 不过补充一点 因为Control添加的时候 它还分父层与子层 所以还要一级一级递归才找到所有 呵呵
tabindex无法变更遍历顺序的 你不需要 非用foreach(Control item in this.Controls){ if(item.text==""){ ...}} 这种来循环 你用 for(int i=this.Controls[i]-1;i>-1;i--){if(this.Controls[i]).Text==""{.....}} 这样来循环不就完了。
用一个tabIndex的从小到大的循环 里面嵌套控件的遍历,判断控件ID是否为tabIndex,如果是,则作相应操作 给你个示例(此示例没有做某个控件下面有控件子集的判断,如果有需要你自己加上) for (int tabID = 1; tabID < 100; tabID++) { foreach (Control tmpCtrl in this.Controls) { if (tmpCtrl.TabIndex == tabID) MessageBox.Show(tmpCtrl.Name); } } 有事请HI我:)
要用递归啊,楼上都是来混分的 //伪代码如下 void enumcontrols(control container) { foreach(var c in container.controls) { //c is the child control here enumcontrols(c); } } //调用 enumcontrols(this);
tabindex的作用是用户在按tab键时,控件获取焦点的顺序。 窗体中遍历控件的顺序,是根据你添加那些控件的顺序的反序。 比如你添加控件的顺序为"按钮,文本框,单选按钮",那么遍历时候就是"单选按钮,文本框,按钮"。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我想自驾开车从鸡西出发去丹东怎么走近?
单身多年为什么手劲大
停车场(查姆大道)地址在什么地方,我要处理点
重逆的意思是什么啊?知道的请说下!
地理经纬度:度分秒是怎样换算
山东省工程造价专业人员资格证书
双柏大酒店停车场怎么去啊,我要去那办事
面部缝针伤疤,能整形修复吗
清华和北大的mem,哪个好一些
银行卡丢失,用户口本行不?
只上不了这一个网站,其他网站都正常。其他机
克鲁赛德战记麻宫没抽到以后还有吗
凾洛的意思是什么啊?知道的请说下!
有没有手机软件可以在图片上添加对话框和文字
停车场(双柏县交通运输局西南)怎么去啊,我要
推荐资讯
深圳市的意思是什么啊?知道的请说下!
被执行人被抓到了后面什么办
电信无线座机如何拦截短信
沙宣头要怎么烫才能有弧度?因为我的头发有点
铠袄的意思是什么啊?知道的请说下!
gif动态图怎么转换成jpg动态图
电钮的意思是什么啊?知道的请说下!
迎致的意思是什么啊?知道的请说下!
毗邻的意思是什么啊?知道的请说下!
华泰涨乐财富通下载后怎么打不开盘面啊
哪部电影上有一个叫麦演员狗的
系统集成什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?