C# - 通过其中一个属性

时间:2016-05-11 14:02:31

标签: c# winforms

我创建了许多从基本控件派生的控件。作为这些扩展控件的一部分,我添加了许多属性。其中一个属性是一个唯一的ID,可以帮助我将其绑定到数据库值。

我需要能够通过UniqueID搜索此控件,UniqueID是我的派生控件所具有的属性(请注意,表单上的所有控件都是我的派生控件,并且所有控件都将UniqueID作为属性)。反思跳到脑海,但我找不到一个例子。

1 个答案:

答案 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)?