我这里有一个小问题。我有一个[5,5]大的二维数组。 我有一个带25个按钮的窗体。现在我想将按钮存储在对象数组中,但我的问题是,如何告诉程序知道将哪个按钮放入数组?是否有可能以某种方式:
//_array[i] = button(i);
这是我第一次将对象存储在数组中,我不知道该怎么做。
编辑:按钮具有所有标准名称(button1,button,button3 ...)
EDIT2:我知道如何手工(_array[x,y] = button1)
,但我想知道如何使用for循环。
答案 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()];