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

C#隐藏按钮/标签/文本框数组,c#,C#,我通过编程创建了按钮/标签/文本框/面板数组。我的问题是如何在某些事件之后隐藏这些数组。是否只有一行命令?比如MyArray.Sum()的例子,它给出数组中的值的总和。我尝试了MyArray.Hide(),但没有针对这个的命令。谢谢。你可以用 但是一个foreach并不是很糟糕,如果您将其更改为列表,它仍然有效: foreach (Control c in MyArray) c.Hide(); 这可能适合您: foreach(var x in MyArray) { x.Visible

我通过编程创建了按钮/标签/文本框/面板数组。我的问题是如何在某些事件之后隐藏这些数组。是否只有一行命令?比如MyArray.Sum()的例子,它给出数组中的值的总和。我尝试了MyArray.Hide(),但没有针对这个的命令。谢谢。

你可以用

但是一个
foreach
并不是很糟糕,如果您将其更改为列表,它仍然有效:

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

这可能适合您:

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;
            }
        }
    }
}
private static void HideControl(Control control)
{
      control.Visible = false;
}
用法:

MyArray.HideAll();

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

您可以更新UI的结构,以便将可隐藏的元素添加到某种父面板/容器中。这样,您只需担心显示/隐藏父循环而不跟踪列表。

如果出于某种原因,您不想为每个循环使用常规循环:

//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);
然而,它做的事情与

foreach(Control control in MyArray)
{
    control.Visible=false ;
}

只需使用
foreach()
(首选),或者可能使用
Select().ToList()
(滥用,因为您没有选择任何内容)。尝试搜索。@CodeCaster我讨厌这种方法,比如。。。for(i=1;i“这样的方法”是什么意思?你为什么讨厌它?在这里讨厌有什么意义。我不明白,因为大多数时候我一直在重复for&foreach的方法。我认为没有关于隐藏的命令行arrays@Tim施梅尔特到底是什么。隐藏()?@RahulNikate:@TimSchmelter我认为OP是在网络表单中寻找答案,而不是在WinForms@RahulNikate:你为什么这么认为?OP没有提到ASP.NET,所有提到的控件都存在于winforms中。但是
Hide
是一个只存在于winforms中而不存在于ASP.NET中的方法。@TimSchmelter是的,你是对的。这是OP的错。他应该在标签中提到它。但是在他写MyArray[i]的地方有一条评论.Visible=false;。所以我猜是ASP.Net,即WebFormssory,但是在哪里添加方法呢?我只是C#的新手。在名称空间?公共部分类?或公共表单之后..查看我的编辑-代码放在一个新的
FormExtensions.cs
文件中。在你想调用HideAll()的类中使用扩展添加
。我试过了,但它在“control.Visible=false”中说空引用;那么您的一个控件必须是
null
。这是正确的命名空间扩展{public static class FormExtensions{public static void HideAll(this control[]controls){foreach(控件中的var control){control control.Visible=false;}}namespace House_Estimator{public分部类FormHouse Estimator:Form{///public FormHouse Estimator(){InitializeComponent();//code}}}}这是正确的命名空间扩展吗{public static class FormExtensions{public static void HideAll(此控件[]控制){foreach(控件中的var控件){control.Visible=false;}}}}}名称空间House_估计器{公共部分类FormHouse估计器:表单{/////public FormHouse估计器(){InitializeComponent();//代码}}}
foreach(Control control in MyArray)
{
    control.Visible=false ;
}