C# 中如何根据控件的TEXT来找到这个控件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 中如何根据控件的TEXT来找到这个控件相关的知识,希望对你有一定的参考价值。

例如,窗口中有N个按钮,现在动态知道了某个按钮的TEXT,要找到这个按钮,让一个新变量BUTTON C=这个按钮,然后对这个按钮进行操作,该怎么做呢?

参考技术A 思路:循环这个窗体里的所有的控件,检查控件的TEXT,找到你的控件 参考技术B ControlCollection con = Page.Form.Controls;

for (int i = 0; i < con.Count; i++)

if (con[i].GetType().Name =="Button")

if (((Button)con[i]).Text == "Oldvalue")

((Button)con[i]).Text = "newvalue";


本回答被提问者采纳

C#里怎么根据一个对象的名称来取得这个对象的属性

就是我传入一个Form上有的一个对象的名称,从而来设置它的属性!
就是比如我Form上有一些文本对象,名称是L1->L6
我就想写一个方法传入一个string字符串,比如传入L1,那么我就对L1这个文本对象来进行操作(设置Text)

你可以取得form的controls,通过controls可以取到直接放在form上的控件。
如果你的label放在了别的容器中,你需要通过form的controls取到容器控件,在通过容器控件的controls属性来取得需要的控件。

以下是VB的类似代码,参考一下。思路一样,只是语法不同罢了。

For Each ctl As Control In ctrls
Select Case ctl.GetType.Name
Case GetType(TextBox).Name
errProvider.SetIconPadding(ctl, -18)
If (Not ctl.Tag Is Nothing) AndAlso ctl.Tag.ToString() = "EmailCheck" Then
AddHandler ctl.Validating, AddressOf EmailValidating
ElseIf (Not ctl.Tag Is Nothing) AndAlso ctl.Tag.ToString() = "FolderCheck" Then
AddHandler ctl.Validating, AddressOf DirValidating
Else
AddHandler ctl.Validating, AddressOf DataValidating
End If
Case GetType(ComboBox).Name
errProvider.SetIconPadding(ctl, -36)
AddHandler ctl.Validating, AddressOf DataValidating
Case Else
If ctl.Controls.Count > 0 Then
SetErrorProvider(ctl.Controls)
End If
End Select
Next
参考技术A 把控件放进HashTable,名称为键 参考技术B 可以遍历窗体上的控件,然后找到L1这个控件,然后可以进行设置 参考技术C atalentsoft - 已经回答了 参考技术D System.Reflection 第5个回答  2009-04-10 说的具体一些

以上是关于C# 中如何根据控件的TEXT来找到这个控件的主要内容,如果未能解决你的问题,请参考以下文章

C#,通过字符串获取控件以及给控件赋值

C# WinForm 如何动态添加控件和设计控件布局

C# winform 由id获取该控件!

c#中, 如何动态移动控件位置

c#中如何从一个控件调用另一个控件?

在C#中,如何根据条件显示或隐藏界面的控件?