C# - 通过属性之一查找控件

标签 c# winforms

我创建了许多从基本控件派生的控件。作为这些扩展控件的一部分,我添加了许多属性。这些属性之一是唯一 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/

相关文章:

c# - C# 中的 Crystal 报表查看器

c# - Protobuf-net - 仅序列化一些属性

c# - 想要像Fiddler一样获得http响应结果

c# - 旧的拖放代码不再适用于 Windows 7

c# - 在 Visual Studio 中替换图像列表中的图像而不更改索引

c# - 如何在表单外捕获按键?

c# - 用于 ASP.NET 设计器支持的 Janus GridEx

c# - WPF 文本框的验证规则

c# - 如何在 C# 中调用方法外使用 ref 变量

c# - 从父控件接收 MouseMove 事件