0

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

在此处输入图像描述

这是我试过的:

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

    但我不知道如何使该标签从数组中禁用。请帮忙。

4

1 回答 1

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:好的,此代码对我有用。我有一个带有文本“示例”的标签。

    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;
        }
    }
于 2012-07-01T17:40:04.497 回答