在WinForm上通过标签查找控件
本文关键字:标签 查找 控件 WinForm | 更新日期: 2023-09-27 18:01:36
我有一个动态的Label
, Tag
创建了14个Label
并添加在GroupBox
中,然后,我想搜索具有Tag = "ABC"
的Label
,我已经尝试过了:
var items = grouptodayerror.ControlCollection;
var finditem = items.Cast<Control>().FirstOrDefault(control => String.Equals(control.Tag, "ABC");
grouptodayerror
是我的GroupBox
,得到一个错误信息
Error 1 'ControlCollection': cannot reference a type through an expression; try 'System.Windows.Forms.Control.ControlCollection' instead
我也试过了:
Label findbox = grouptodayerror.Controls.Find("ABC", true).FirstOrDefault() as Label;
if (findbox != null)
findbox.Text = "CDE";
但是我在第一行得到null reference
错误。
- 如何获取
ControlCollection
? - 第二个代码可以找到
Tag
还是Control
的Text
? - 有办法做到这一点吗?
你能试试这个吗
foreach (Label lb in Controls.OfType<GroupBox>().SelectMany(groupBox => groupBox.Controls.OfType<Label>()).ToList())
{
if (lb.Tag.Equals("ABC"))
{
//Write your logic here
}
}