gpt4 book ai didi

c# - 如何按名称引用 Windows 窗体控件 (C#/VB)

转载 作者:行者123 更新时间:2023-11-30 13:08:58 25 4
gpt4 key购买 nike

假设我在名为“UserName”的 Windows 窗体上有一个标签控件。如何使用标签名称以编程方式引用该标签?

例如我可以这样做:

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 不支持使用字符串名称的直接引用,并且 FindControl 方法仅适用于 asp.net...

编辑

感谢您到目前为止的回复。这里有更多细节。

我有一个包含三个标签页的窗口窗体,所有这些标签页的设计和功能都非常相似,即相同的下拉菜单、标签、以类似的方式对事件使用react等。

我没有为每个标签页的每个事件编写代码,而是构建了一个类来控制每个标签页的事件等。

例如,在每个标签页上都有一个名为“RecordCounter”的标签,当通过在下拉菜单中选择一个变量来填充数据 GridView 时,它仅显示数据 GridView 中的行数。

所以我想做的是,在下拉菜单中选择一个变量后,datagridview 会用数据填充自身,然后我只想显示标签中的行数(“RecordCounter” ).

这在每个标签页上都是完全相同的过程,所以我正在做的是将标签页传递给类,然后我希望能够引用“RecordCounter”,然后更新它。

在我的类(class)中,我将 ActivePage 属性设置为用户选择的 TabPage,然后希望能够执行如下操作:

ActivePage.RecordCounter.Text = GetNumberOfRows()

最佳答案

您应该能够使用 Find():

TabPage.Controls.Find("UserName", false);

这将搜索所有子控件并返回与字符串匹配的子控件的数组。如果您为第二个参数指定 true,它也会查看子控件的控件。

关于c# - 如何按名称引用 Windows 窗体控件 (C#/VB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1178967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com