0

我的表单由一个 3x3 数组和 9 个使用表单编辑器创建的按钮组成;每个按钮都有一个标识符,例如 btn1、btn2,一直到 btn9。DisableButton 和 EnableButton 方法将按钮作为参数。有什么方法可以使用下面的 for 循环将所有按钮传递给一种方法或另一种方法?

        for (int r = 0; r < myArray.GetLength(0); r++)
        {
            for (int c = 0; c < myArray.GetLength(1); c++)
            {
                if (numericUpDown.Value > myArray[r, c] || myArray[r, c] == 0)
                    DisableButton(btn1);// new button parameter on each repeat
                else
                    EnableButton(btn1);                    
            }
        }

对于下一次重复,我希望 btn1 更改为 btn2,然后将 btn2 更改为 btn3,依此类推,直到每个按钮都打开或关闭。

4

3 回答 3

2

我建议将所有按钮放入数组(或列表)中,然后遍历它们:

Button[] buttons =  { btn1, btn2/*, ...*/ };

// then you can do something like this
for(int i = 0; i < buttons.Length; i++)
{
    EnableButton(buttons[i]);
}
// or
foreach(Button btn in buttons)
{
    EnableButton(btn);
}
于 2012-11-08T17:53:16.753 回答
0

请按照以下步骤操作。

  1. 获取所有按钮控件。
  2. 遍历那些。
  3. 根据您的逻辑添加条件。
  4. 通过传递循环的当前元素调用 EnableButton()。

希望这会有所帮助。

于 2012-11-08T17:53:07.297 回答
0

您可以很容易地自己创建数组:

Button[,] buttons = new Button[3, 3]
    { 
        { button1, button1, button1 }, 
        { button1, button1, button1 }, 
        { button1, button1, button1 }
    };
于 2012-11-08T17:54:06.500 回答