1
在我的winforms应用程序中,我动态地创建了表单元素(Radiobutton,Label等)。我需要使用其名称属性访问特定的表单元素。一个简单的解决方案是使用Form1.Controls迭代每个表单元素并检查其名称属性。但在我看来,这个解决方案并不有效。是否有可能使用反射访问特定的表单元素?动态访问表单元素
在我的winforms应用程序中,我动态地创建了表单元素(Radiobutton,Label等)。我需要使用其名称属性访问特定的表单元素。一个简单的解决方案是使用Form1.Controls迭代每个表单元素并检查其名称属性。但在我看来,这个解决方案并不有效。是否有可能使用反射访问特定的表单元素?动态访问表单元素
如果你有机会到控件集合,你可以使用提供
myForm.Controls.Find("ControlName",true);
如果你知道它的类型find()方法 - 你可以将它转换以及
TextBox t = (TextBox)myForm.controls.Find("txtFirstName",false);
真或false将指示该功能搜索任何子控件。
你可以给出一个论点,你为什么认为迭代的孩子比反射效率低? – Archeg 2012-03-01 14:11:38
如果您使用的是.Net4,则有一个控件索引器的重载:form1.Controls [“ControlName”] – 2012-03-01 14:14:41