用按钮填充二维数组

时间:2013-01-15 14:18:49

标签: c# arrays winforms button

我这里有一个小问题。我有一个[5,5]大的二维数组。 我有一个带25个按钮的窗体。现在我想将按钮存储在对象数组中,但我的问题是,如何告诉程序知道将哪个按钮放入数组?是否有可能以某种方式:

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

这是我第一次将对象存储在数组中,我不知道该怎么做。

编辑:按钮具有所有标准名称(button1,button,button3 ...)

EDIT2:我知道如何手工(_array[x,y] = button1),但我想知道如何使用for循环。

3 个答案:

答案 0 :(得分: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];

答案 1 :(得分: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()];
    }
}

答案 2 :(得分: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()];