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 に答える