在多个名称相似的控件上调用DataBindings.Clear()

时间:2009-02-03 18:23:01

标签: c# grouping

Originaly在不同的论坛上发布了一段时间,希望我能在这里找到更多帮助:)

嗨,大家好,

我确信这是一个非常基本的问题,但我是很多编程和C#的新手。我发现我需要清除几个控件上的数据绑定,目前有:

            lblTableValue1.DataBindings.Clear();
            lblTableValue2.DataBindings.Clear();
            lblTableValue3.DataBindings.Clear();
            lblTableValue4.DataBindings.Clear();
            lblTableValue5.DataBindings.Clear();
            lblTableValue6.DataBindings.Clear();
            lblTableValue7.DataBindings.Clear();

这不可能是做到这一点的最好方法吗?我还需要将所有这些文本值设置为“”,我可以将它们分组并在整个组中调用清楚吗?

非常感谢提前 ģ

2 个答案:

答案 0 :(得分:5)

foreach(Control c in this.Controls)
{
    if(c.Name.StartsWith("lblTableValue"))
    {
        c.DataBindings.Clear();
    }
}

那可能会起作用。或者,如果你更像一个纯粹主义者:

foreach(Control c in new Control[]
    {
        lblTableValue1,
        lblTableValue2,
        etc
    })
{
    c.DataBindings.Clear();
}

答案 1 :(得分:0)

在这种情况下,我发现最好在某种容器中包含我想要操作的控件,比如Panel。然后迭代变得容易:

private void SetLabelText() 
{ 
  foreach (Control c in Panel1.Controls) 
  { 
    if (c is Label && c.ID.StartsWith("lblTableValue"))
    { 
      Label lbl = c as Label; 
      lbl.Text = string.Empty;
      lbl.DataBindings.Clear();
    } 
  } 
}