gpt4 book ai didi

c# - 查找组件非可视化 C#

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:38 25 4
gpt4 key购买 nike

我已经尝试了很多方法来列出表单的所有非可视组件,例如 OpenDialog、ImageList、TableAdapters 等,但找不到任何东西。为了找到屏幕上的控件,我设法在“控件”屏幕中使用 Foreach,但对于那些非可视组件,我一无所获。我使用了下面的代码但没有成功:

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;
}

知道如何解决这个问题吗?

最佳答案

private IEnumerable<Component> EnumerateComponents()
{
return this.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
.Where(f => typeof(Component).IsAssignableFrom(f.FieldType))
.Where(f => !typeof(Control).IsAssignableFrom(f.FieldType))
.Select(f => f.GetValue(this))
.OfType<Component>();
}

关于c# - 查找组件非可视化 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27026373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com