0

我知道关于这个错误有很多线程,但我真的尽我最大的努力来理解解决方案,但似乎无法让它发挥作用。

我编写了一个简单的测试程序,它给出了错误(下面的代码)。我应该指出,对于实际程序,我想创建大量标签,并且数量在运行时会有所不同,所以我不能只是在代码中手动创建它们。

任何帮助将非常感激。

namespace Test
{
    public partial class Form1 : Form
    {

        Label[] label = new Label[3];

        public Form1()
        {
            InitializeComponent();              
        }

        private void button1_Click(object sender, EventArgs e)
        {            
           for (int i = 0; i < 3; i++)
           {
              label[i].Location = new Point(10, 10 + 40*i);
              label[i].Text = "My name is label " +i;
              this.Controls.Add(label[i]);                
           }
           MessageBox.Show("Done");   
        }
    }
}
4

3 回答 3

1

您创建了一个标签数组,而没有实际创建标签。

将此行添加为 for 循环中的第一行:

label[i] = new Label();
于 2013-02-09T14:28:22.293 回答
1

您尚未将数组的任何成员初始化为 a Label- 该数组包含空值。

    Label[] label = new Label[3];

    public Form1()
    {
        label[0] = new Lablel();
        label[1] = new Lablel();
        label[2] = new Lablel();

        InitializeComponent();              
    }
于 2013-02-09T14:28:54.367 回答
1

您应该从列表中创建每个标签,将行添加到循环的开头:

label[i] = new Label();
于 2013-02-09T14:30:29.417 回答