找到包含“必填文本”的标签

时间:2012-07-01 17:19:32

标签: c# label

在C#Winforms中,当用户首次加载表单时,我通过单击该标签将输入作为标签“text”输入到数据库中。如果另一个用户加载该表单,我想再次禁用该标签。我该怎么做?这是表格样本

enter image description here

这是我的尝试:

  • 如果用户点击多个标签,我会将输入字符串设为“E10,E9,E8,E7等”,
  • 当另一个用户加载表单时,我检索该字符串并拆分 通过使用“,”并将其存储在数组中

    但我不知道如何从阵列中禁用该标签。请帮忙。

1 个答案:

答案 0 :(得分:1)

* 强文 * 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:好的,这段代码适合我。我有一个带有文字“Sample”的标签。

    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;
        }
    }