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