0

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

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

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

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

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

4

3 回答 3

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 回答
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 回答
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 回答