我知道有很多关于这个错误的主题,但我真的尽力了解解决方案,似乎无法让这个工作起作用。
我写了一个简单的测试程序,它给出了错误(下面的代码)。我应该指出,对于实际程序,我想创建大量标签,并且数字在运行时会有所不同,所以我不能在代码中手动创建它们。
非常感谢任何帮助。
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");
}
}
}
答案 0 :(得分:1)
您可以在不实际创建标签的情况下创建标签数组。
将此行添加为for循环中的第一行:
label[i] = new Label();
答案 1 :(得分:1)
您尚未将数组的任何成员初始化为Label
- 该数组包含空值。
Label[] label = new Label[3];
public Form1()
{
label[0] = new Lablel();
label[1] = new Lablel();
label[2] = new Lablel();
InitializeComponent();
}
答案 2 :(得分:1)
您应该从列表中创建每个标签 将行添加到循环的开头:
label[i] = new Label();