【问题标题】:Accessing Form Elements Dynamically动态访问表单元素
【发布时间】:2012-03-01 22:11:50
【问题描述】:

在我的 winforms 应用程序中,我动态创建表单元素(单选按钮、标签等)。我需要使用其 name 属性访问特定的表单元素。一个简单的解决方案是使用 Form1.Controls 迭代每个表单元素并检查其名称属性。但在我看来,这种解决方案是无效的。是否可以使用反射访问特定的表单元素?

【问题讨论】:

  • 你能给出一个论据,为什么你认为迭代孩子不如反射有效?
  • 如果您使用的是 .Net4,则会出现控件索引器的重载:form1.Controls["ControlName"]

标签: c# winforms reflection


【解决方案1】:

如果您可以访问控件集合,则可以使用提供的 Find() 方法

myForm.Controls.Find("ControlName",true);

如果你知道它的类型 - 你也可以转换它

TextBox t = (TextBox)myForm.controls.Find("txtFirstName",false);

true 或 false 将指示函数搜索任何子控件。

【讨论】:

    猜你喜欢
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    相关资源
    最近更新 更多