如何使用数组保存窗体中的控件并隐藏/显示它们
本文关键字:隐藏 显示 控件 数组 何使用 保存 窗体 | 更新日期: 2023-09-27 18:22:37
我对编码还是个新手。我正在制作一个计算器,但我也想在里面放很多其他东西。比如转换计算器、烹饪书和c#WindowsFormsApplication中的汉字偏旁字典。我想使用comboBox从一个到下一个进行更改,所以我要制作一个数组,其中包含我希望隐藏/显示的所有控件
string[] numList = {"button0","button1","button2", "button3"};//this will have all number and .
for (int i = 0; i < numList.Length; i++)
{
numList[i].Hide();
}
但它告诉我"隐藏"没有定义,但当我将numList[i]
切换到button0
时,它可以工作,但我不希望每次向comboBox
添加东西时都编写相同的11控件来修复这个或任何其他方法
如果您想隐藏所有Buttons
,请尝试以下操作:
foreach (Button control in Controls.OfType<Button>())
{
(control).Hide();
}
这将遍历表单的所有Buttons
并隐藏它们。但是,如果您只想隐藏特定的按钮,那么您可以将该按钮的Tag
属性设置为类似OP
的属性,然后只隐藏该Buttons
:
foreach (Button control in Controls.OfType<Button>())
{
if (control.Tag.ToString() == "OP")
{
(control).Hide();
}
}
或者使用linq:
foreach (Button control in Controls.OfType<Button>().Where(control => control.Tag.ToString() == "OP"))
{
(control).Hide();
}
尝试以下代码
private void btnHide_Click(object sender, EventArgs e)
{
string[] buttonList = { "button1", "button2", "button3" };
for (int i = 0; i < buttonList.Length; i++)
{
Control[] ctrl = this.Controls.Find(buttonList[i], true);
((Button)ctrl[0]).Visible = false;
}
}
您保留了一个字符串列表,实际上应该将按钮添加到列表中,以便使Hide方法可见
Control[] numList = {button0, button1, button2, button3 };