我想清除控件是标签且名称以“label”开头的表单上的所有值
这段代码:
List<Label> lbls = this.Controls.OfType<Label>().ToList();
foreach (var lbl in lbls)
{
if (lbl.Name.StartsWith("label"))
{
lbl.Text = string.Empty;
}
}
...不起作用,因为 lambda 什么也没找到 - lbls.Count = 0。
这不会获得表单上的所有控件,甚至是其他控件(例如,在我的例子中是 Panels)的子控件吗?
最佳答案
尝试使用这种方法:
public void ClearLabel(Control control)
{
if (control is Label)
{
Label lbl = (Label)control;
if (lbl.Text.StartsWith("label"))
lbl.Text = String.Empty;
}
else
foreach (Control child in control.Controls)
{
ClearLabel(child);
}
}
您只需将表单传递给 ClearLabel 方法即可。
关于c# - 如何获取表单上的所有标签并将具有特定名称模式的标签的 Text 属性设置为 string.empty?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12808943/