C#隐藏按钮/标签/文本框的数组

时间:2015-04-23 10:34:08

标签: c#

我以编程方式创建了按钮/标签/文本框/面板数组。我的问题是如何在某些事件后隐藏这些数组。有一行命令吗?比如MyArray.Sum()的例子,它给你一个数组内的值的总和。我尝试了MyArray.Hide()但没有命令这个。感谢。

4 个答案:

答案 0 :(得分:1)

您可以使用Array.ForEach

Array.ForEach(MyArray, c => c.Hide());

foreach并不是真的更糟糕,如果您将其更改为列表仍然有效:

foreach (Control c in MyArray) c.Hide();

答案 1 :(得分:1)

这可能对您有用:

foreach(var x in MyArray)
{
    x.Visible = false;
}

如果您想要方法调用,可以创建扩展方法:

namespace Extensions
{
    public static class FormExtensions
    {
        public static void HideAll(this Control[] controls)
        {
            foreach(var control in controls)
            {
                control.Visible = false;
            }
        }
    }
}

用法:

MyArray.HideAll();

无论哪种方式,请使用更多详细信息和一些代码更新您的问题。

答案 2 :(得分:0)

您可以更新UI的结构,以便将可隐藏元素添加到某种父级Panel / Container中。这样您只需要担心显示/隐藏父级而不跟踪列表。

答案 3 :(得分:0)

如果由于某种原因你不想为每个循环使用常规:

//Create an action that hides your control
Action<Control> HideControlAction = new Action<int>(HideControl);
//Call your action on each member of MyArray
Array.ForEach(MyArray, action);

定义您的操作方法:

private static void HideControl(Control control)
{
      control.Visible = false;
}

然而它与

完全相同
foreach(Control control in MyArray)
{
    control.Visible=false ;
}
相关问题