0

我在编码方面还是新手。我正在做一个计算器,但我还想要很多其他的东西。就像 c# WindowsFormsApplication 中的转换计算器、烹饪书和汉字激进字典一样

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 控件

4

3 回答 3

2

如果你想隐藏所有Buttons然后试试这个:

foreach (Button control in Controls.OfType<Button>())
{
    (control).Hide();
}

这会遍历所有Buttons表单并隐藏它们。但是,如果您只想隐藏特定按钮,则可以Tag将该按钮的属性设置为OPthen以仅隐藏该属性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();
}
于 2015-11-18T11:57:04.993 回答
1

试试下面的代码

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;
    }
}
于 2015-11-18T12:05:37.983 回答
0

您正在保留一个字符串列表,您实际上应该将按钮添加到列表中以使 Hide 方法可见

Control[] numList = {button0, button1, button2, button3 };
于 2015-11-18T11:58:12.383 回答