当我尝试通过foreach访问按钮列表中的多个按钮时,或者类似于以下代码,如果我将BtnsList
更改为13作为列表大小,则它不执行任何操作或弹出以下错误:< / p>
&#34;指数超出范围。必须是非负数且小于集合的大小。&#34;
for (int refresher = 0 ; refresher < BtnsList.Count - 1 ; refresher++)
{
BtnsList[refresher].Text = "whatever";
}
之前我做过:
BtnsList.Add(button1);
BtnsList.Add(button2);
BtnsList.Add(button3);
BtnsList.Add(button4);
BtnsList.Add(button5);
BtnsList.Add(button6);
BtnsList.Add(button7);
BtnsList.Add(button8);
BtnsList.Add(button9);
BtnsList.Add(button10);
BtnsList.Add(button11);
BtnsList.Add(button12);
所以我不明白为什么.count
会返回0。
完整相关代码:
public partial class Form1 : Form
{
static int[] Texters = new int[13];
static List<Button> BtnsList = new List<Button>();
static void Pressed(int a)
{
int b = a;
while (Texters[a] > 0)
{
Texters[b + 1]++;
}
for (int refresher = 0 ; refresher < BtnsList.Count ; refresher++)
{
BtnsList[refresher].Text = "whatever";
}
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
foreach (int tempInt in Texters)
{
Texters[tempInt] = 4;
}
foreach (Button btn in this.Controls)
{
btn.Text = "4";
}
BtnsList.Add(button1);
BtnsList.Add(button2);
BtnsList.Add(button3);
BtnsList.Add(button4);
BtnsList.Add(button5);
BtnsList.Add(button6);
BtnsList.Add(button7);
BtnsList.Add(button8);
BtnsList.Add(button9);
BtnsList.Add(button10);
BtnsList.Add(button11);
BtnsList.Add(button12);
}
答案 0 :(得分:2)
在你的for循环中迭代它们之前添加你的按钮,这应该可以解决你的问题。