C#winform 写控件的互斥属性时,该如何查找整个运行窗体内所有同类型的控件

抄袭了一个,能实现基本功能,但想进一步完善,改如何改写:首先我对C#的认识只是停留在入门级,所以有些说法请大哥别见怪,大哥你提供的代码应该是遍历fControl里面所有的... 抄袭了一个,能实现

基本功能,但想进一步完善,改如何改写:
首先我对C#的认识只是停留在入门级,所以有些说法请大哥别见怪,大哥你提供的代码应该是遍历fControl里面所有的子控件吧,我的思路是遍历当前控件(蓝色panel里面的其中一个button)BUTTON的父容器Panel1的子控件集,并找出所有同类型BUTTON的控件,并对他们进行实例化,然后在修改他们的属性。问题就出在这里:假设我只是需要遍历当前控件的第一个父容器panel1(蓝色那个),那样子我上面的代码是完全能实现我的“同类型控件互斥“的要求,但是假设如果我想遍历panel(蓝色)的父容器panel(灰色)里面的所有同类型BUTTON
公布答案了:公司大神已经给出解决方法:再添加一个属性值,这个属性值可以获取窗口,然后在用 FieldInfo[] fieldInfo = obj.GetType().GetFields(...);来进行操作。我操,尼玛太神奇了!字符有限,不完全列上去了!
展开
 我来答
百度网友48265a621
2013-12-28 · TA获得超过592个赞
知道小有建树答主
回答量:807
采纳率:0%
帮助的人:645万
展开全部
void FindControl(Control fControl)
{
foreach (Control child in fControl.Controls)
{
if (child.GetType() == typeof(Button))
{//找了button控件,想做什么就写在里面
//MessageBox.Show(child.Name);
//count++;//比如统计Button类型的控件个数
}
if (child.Controls.Count > 0)
{
FindControl(child);
}
}
}

用递归去遍历就可以,上述方法就可以用来找某个控件下面所有的button,包括子控件包含的button。(button这里自己修改期望的控件类型就可以,比如你的oCheckButton)

如果你要统计一个From的把From当做参数传进来,如当前窗体:FindControl (this);
更多追问追答
追问
我写的是自定义控件的属性
追答
BUTTON只是一个列子,我看你代码里面是自定义控件的class是oCheckButton,那么button的地方你换成oCheckButton就可以用了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式