如何通过名称引用Windows窗体控件(C#/ VB)
假设我在一个名为“UserName”的窗体上有一个标签控件.如何使用标签名称以编程方式引用该标签?
例如,我可以这样做: For each ctrl as Control in TabPage.Controls If ctrl.Name = "UserName" Then ' Do something End If Next 这似乎效率很低.我想做的事情如下: TabPage.Controls("UserName").Text = "Something" 我做了一些谷歌搜索但找不到满意的答案.大多数建议循环,有些人说.NET 2005不支持使用字符串名称直接refenece,而FindControl方法只是asp.net … 编辑 感谢到目前为止的回复.这里有一些细节. 我有一个带有三个标签的窗体,所有设计和功能都非常相似,即相同的下拉菜单,标签,以类似的方式对事件做出反应等. 我没有为每个标签页的每个事件编写代码,而是构建了一个控制每个标签页的事件等的类. 例如,在每个标签页上都有一个名为“RecordCounter”的标签,它只是通过在下拉菜单中选择变量来填充数据网格视图中的行数. 所以我想要做的是,在下拉菜单中选择变量后,datagridview会自己填充数据,然后我只想显示标签中的行数(“RecordCounter”). 这是每个标签页上完全相同的过程,所以我正在做的是将标签页传递给类,然后我希望能够引用“RecordCounter”然后更新它. 在我的类中,我将ActivePage属性设置为用户选择的TabPage,然后希望能够执行以下操作: ActivePage.RecordCounter.Text = GetNumberOfRows()
你应该能够使用Find():
TabPage.Controls.Find("UserName",false); 这将搜索所有子控件并返回与该字符串匹配的数组.如果为第二个参数指定true,它也将查看子控件的控件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- winapi – 我可以从DLL中删除数字签名吗?
- windows – DTCPing和DTCTester有什么区别?
- Pycharm界面的子窗口不见了,怎么办?
- windows-server-2008 – 将2008 Server升级到2008 R2,还是等
- winforms – windows窗体:带有历史记录的文本框
- 如何在Windows 7命令行上执行.jar java程序?
- windows-server-2003 – 服务器2008到2003使用cifs减慢文件
- windows提权方法总结
- windows – DNS请求从可以ping DNS服务器的计算机失败
- windows-phone-7 – 如何在windows phone 8 app中为httpweb