我创建了许多从基本控件派生的控件。作为这些扩展控件的一部分,我添加了许多属性。这些属性之一是唯一 ID,它可以帮助我将其绑定(bind)到数据库值。
我需要能够通过 UniqueID 搜索该控件,该属性只有我的派生控件才具有(请注意,窗体上的所有控件都是我的派生控件,并且所有控件都具有 UniqueID 作为属性)。脑海中浮现出反射(reflection),但我找不到例子。
最佳答案
使用Enumerable.OfType<T>
过滤掉特定类型的控件,然后您可以查询特定属性,例如:
var controls = this.Controls.OfType<YourControl>().Where(r => r.UniqueId == someValue);
请记住,这仅搜索根级别的控件,如果您有兴趣查找嵌套控件,则必须使用递归方法。请参阅:How to get ALL child controls of a Windows Forms form of a specific type (Button/Textbox)?
关于C# - 通过属性之一查找控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37165015/