List.Count从按钮列表返回0

时间:2015-04-23 22:02:06

标签: c# list

当我尝试通过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);


    }

1 个答案:

答案 0 :(得分:2)

在你的for循环中迭代它们之前添加你的按钮,这应该可以解决你的问题。