如果控件是.net自带的控件,这个遍历好做,通过Control的Controls属性就行但第三方控件不一定继承Control,上面的方法就行不通看了一些设计器的代码,对于子控件属性的识别也只是写死“Controls”这个属性名称只能来这里看看各位有什么办法!!谢谢
解决方案 »
- WINFORM 里 listview中 listviewitem 图标的对象是什么?
- 匿名委托的问题
- vs2008 开发WINCE智能设备管理程序,如何连接ORACLE数据库?
- winform treeview的checkbox点击偶尔失灵
- 如何改变TreeView的边框样式
- C#如何检测系统未安装的补丁
- 在Windows窗体中保存值
- 在单线程中调用COM对象的方法正确,在多线程中调用同样的方法 出现 QueryInterface失败?有没有人遇到过?
- 关于spreadsheet引用问题!!命名空间!!!
- 求正则式:包含26个大小写,数字,加2个字符_和-
- 一个并发处理机制怎么写呢?
- 无法将类型"byte[]"隐式转换为"byte"!!!
比如你自定义控件叫AAforeach(AA aa in panel.Controls)
{}
//或者
foreach(Control aa in Panel.Controls)
{
if(aa is AA && ((AA)aa).Name == "aa")
{}
}
都说了,第三方控件不一定继承Control
不过你这也要解决,
可以用逆向思维啊,
遍历所有控件将继承Control的控件除外不就行了
现在用的第三方控件叫QIOS,这套东西也不是所有控件都不继承Control,只是部分控件(例如RibbonToolBar)不继承
可以查找非继承自 Control Type controlType = typeof(Control); // 获取Control类所在的程序集
Assembly assembly = Assembly.GetAssembly(typeof(Control));
foreach (Type type in assembly.GetTypes())
{
// 提取出所有非继承自 Control的类型
if (!type.IsSubclassOf(controlType))
{
//...
}
}
大哥,我只是说有些控件不继承Control,不是所有不继承Control的都是控件
引用 1 楼 sola040515 的回复:
比如你自定义控件叫AAC# codeforeach(AA aa in panel.Controls)
{}
//或者
foreach(www.cctv40.comControl aa in Panel.Controls)
{
if(aa is AA && ((AA)aa).Name == "aa")
{}
}……