在Windows窗体上查找组件c#(不是控件)
发布时间:2020-12-13 22:42:58 所属栏目:Windows 来源:网络整理
导读:我知道如何查找和收集 Windows窗体中使用的所有控件的列表. 像这样的东西: static public void FillControls(Control control,ListControl AllControls){ String controlName = ""; controlName = control.Name; foreach (Control c in control.Controls) {
我知道如何查找和收集
Windows窗体中使用的所有控件的列表.
像这样的东西: static public void FillControls(Control control,List<Control> AllControls) { String controlName = ""; controlName = control.Name; foreach (Control c in control.Controls) { controlName = c.Name; if ((control.Controls.Count > 0)) { AllControls.Add(c); FillControls(c,AllControls); } } } 但是,此函数不会检索表单底部的非可视组件,如HelpProvider,ImageList,TableAdapters,DataSet等. 有没有办法获得这些组件的列表? 编辑: 感谢@HighCore指示我在类似的函数中使用System.ComponentModel.Component确实为我提供了一个包含ImageList,Help Provider和BindingSource等组件的列表. 请.不要将我的旧帖子推荐给我,这些帖子显示了与我类似的功能,并且只获取控件列表. 编辑:为什么负面投票?这个问题以前从未得到过回答!
令人惊讶的是,似乎唯一的方法是通过反思.
private IEnumerable<Component> EnumerateComponents() { return from field in GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) where typeof (Component).IsAssignableFrom(field.FieldType) let component = (Component) field.GetValue(this) where component != null select component; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Windows和Linux中php代码调试工具Xdebug的安装与配置详解
- DLL – 链接到使用MSVC编译的静态库
- 安装了哪个版本的Windows Management Framework?
- windows – 通过Citrix Receiver(或Citrix服务器)登录Citri
- windows-server-2012-r2 – 如何在Windows 2012中禁用RC4?
- 如何运行在Vista(.NET)中没有提升
- Windows 10:是否可以手动向操作中心添加新通知?
- win7电脑怎么录制视频 电脑怎么录屏
- Window api-ms-win-crt-runtime-l1-1-0.dll丢失
- winapi – win32 CreateFile2 api调用的目的是什么?