在 C# Winforms 中,当用户首次加载表单时,我通过单击该标签将输入作为标签“文本”输入数据库。再次,如果另一个用户加载该表单,我想禁用该标签。我怎样才能做到这一点?这是表格样本
这是我试过的:
- 如果用户点击多个标签,我会得到输入字符串“E10,E9,E8,E7 等,”
当另一个用户加载表单时,我检索该字符串并使用“,”将其拆分并将其存储在一个数组中
但我不知道如何使该标签从数组中禁用。请帮忙。
*强文本*1.- 在您的数组中循环
2.- 使用标签名称查找标签(我认为标签名称与您在数组中的输入字符串相同)
3 .- 禁用控制
foreach (string name in yourArray)
{
var matches = this.Controls.Find(name , true);
((Label) matches).Enable = False
}
我现在没有编译器,我希望它能运行。如果不是,请谅解。
编辑:通过他的文本属性找到一个标签:
foreach(Control c in this.Controls)
{
if(c is Label)
{
if((Label) c).Text == "RequiredText")
{
// Do stuff here ;
}
}
}
请注意,如果标签位于面板、组框或任何内容控件内,则必须使用 udo contentControl.Controls 而不是使用“this”。
编辑 2:好的,此代码对我有用。我有一个带有文本“示例”的标签。
var myarray = "E1,E2,Sample".Split(',');
foreach (Control labelcontrol in this.Controls)
{
if (!(labelcontrol is Label)) continue;
foreach (var text in myarray)
{
if (labelcontrol.Text == text)
labelcontrol.Enabled = false;
}
}