我创建了许多从基本控件派生的控件。作为这些扩展控件的一部分,我添加了许多属性。其中一个属性是一个唯一的ID,可以帮助我将其绑定到数据库值。
我需要能够通过UniqueID搜索此控件,UniqueID是我的派生控件所具有的属性(请注意,表单上的所有控件都是我的派生控件,并且所有控件都将UniqueID作为属性)。反思跳到脑海,但我找不到一个例子。
答案 0 :(得分:2)
使用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)?