0

ここで少し問題があります。[5,5]大きい2次元配列があります。25個のボタンがあるWindowsフォームがあります。ここで、ボタンをオブジェクト配列に格納したいのですが、問題は、どのボタンを配列に配置するかをプログラムに通知するにはどうすればよいかということです。この方法でそれは可能ですか?

//_array[i] = button(i);

オブジェクトを配列に格納するのはこれが初めてで、その方法がわかりません。

編集:ボタンにはすべての標準名(button1、button、button3 ...)があります

EDIT2:私は手作業でそれを行う(_array[x,y] = button1)方法を知っていますが、forループでそれを行う方法を知りたいです。

4

3 に答える 3

1

次を使用してコントロールをフィルタリングできますIEnumerable.OfType()

//get all buttons and order them by name
var buttons = Controls.OfType<Button>().OrderBy(x => x.Name).ToList();

for(int i = 0; i < 5; i++)
   for(int j = 0; j < 5; j++)
        _array[i, j] = buttons[i*5+j];
于 2013-01-15T14:30:10.730 に答える
1

Controlsコレクションのインデックスとして名前を使用してボタンにアクセスできます。

for (int i = 0; i < 5; i++) {
    for (int k = 0; k < 5; k++) {
        _array[i, k] = Controls["Button" + (5 * i + k + 1).ToString()];
    }
}
于 2013-01-15T14:38:49.353 に答える
0

これを試して:

for (int i=0; i<5; i++)
for (int j=0; j<5; j++)
  _array[i,j] = Controls.Item["Button" + (i*5 +j).ToString()];
于 2013-01-15T14:20:57.390 に答える