如何遍历窗体中的所有控件?
如何遍历窗体中的所有控件? 问题点数:20、回复次数:16Top
1 楼Qqwwee_Com(http://qqwwee.com)回复于 2005-01-29 22:25:49 得分 0
for each c as control in me.controls
....
好象是。Top
2 楼AllenTing(今天你GC了吗???)回复于 2005-01-29 22:31:47 得分 0
foreach(Control ctr in Page.Controls)
{
//遍历页面中所有服务器控件,根据控件类型或者id可以实现查找某个控件
}Top
3 楼linlin1972(林林)回复于 2005-01-29 22:37:27 得分 0
sub EveryControl(parentControl as control)
if parentcontrol.controls.count>0 then
for each c as control in parentControl.controls
EveryControl(c)
next
else
...
next
end sub
这样会不会太过份?:-)Top
4 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2005-01-29 22:57:01 得分 0
for each c as control in me.controls
....
好象是。
这个是对的,不过panel和groupbox等一些容器,他们内部的不好访问,我觉得还得写循环Top
5 楼longqiaoman(龙桥人)回复于 2005-01-30 09:02:24 得分 0
递归查找
public sub FindControl()
for each obj as Control in me.Controls
FindControl(obj)
next
end sub
private sub FindControl(byval objContainer as Control)
if (objContainer is nothing) orelse objContainer.Controls.Count=0 Then
return
end if
for each obj as Control in me.Controls
FindControl(obj)
next
end subTop
6 楼longqiaoman(龙桥人)回复于 2005-01-30 09:03:52 得分 20
'sorry,写错了
'把me改为objContainer
public sub FindControl()
for each obj as Control in me.Controls
FindControl(obj)
next
end sub
private sub FindControl(byval objContainer as Control)
if (objContainer is nothing) orelse objContainer.Controls.Count=0 Then
return
end if
for each obj as Control in objContainer .Controls '把me改为objContainer
FindControl(obj)
next
end sub
Top
7 楼zhxiongying(雄鹰)回复于 2005-01-30 10:11:52 得分 0
谢谢龙桥人
上面的怎么改成只读取"TextBox"控件Top
8 楼wj2929(Rěй)回复于 2005-01-30 10:21:58 得分 0
foreach(Control s in this.Controls)
{
if(s.GetType()==typeof(TextBox))
{
((TextBox)s).Text ="阿sdfads"; '这里
}
}
Top
9 楼zhxiongying(雄鹰)回复于 2005-01-30 14:21:04 得分 0
为什么"NumericUpDown1"控件读不出来Top
10 楼zhxiongying(雄鹰)回复于 2005-02-01 15:49:08 得分 0
为什么"NumericUpDown1"控件读不出来
Top
11 楼KissXYL(挚爱凝忆)回复于 2005-02-01 17:05:28 得分 0
upTop
12 楼zhxiongying(雄鹰)回复于 2005-02-01 22:48:49 得分 0
为什么"NumericUpDown1"控件读不出来Top
13 楼wj2929(Rěй)回复于 2005-02-01 23:04:16 得分 0
foreach(Control s in this.Controls)
{
if(s.GetType()==typeof(TextBox))
{
((TextBox)s).Text ="wanmgj";
}
if(s.GetType()==typeof(NumericUpDown))
{
string aa=((NumericUpDown)s).Value.ToString();//<--------这里得到
}
}
Top
14 楼luobin1111(蜗牛)回复于 2005-02-04 18:38:35 得分 0
form中有一个属性,直接读属性就是了~~~~~~Top
15 楼YanJieBing(小严)回复于 2005-02-05 00:14:47 得分 0
1. 必须使用递归,在VB中所有的控件都是直属于FORM的,在.NET里不是这样,控件都有自己的Controls集合。
2. 个人认为用 TypeOf 会比较好一些,如:
If TypeOf childControl Is NumericUpDown Then
...
End IfTop
16 楼chenyuming2004(这辈子我算是废了)回复于 2005-02-06 14:31:43 得分 0
http://blog.csdn.net/chenyuming2004/archive/2005/01/21/262479.aspx
看看上面的。Top




