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

リストの追加行からループの開始までのすべてのラベルを作成する必要があります。

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

ラベルを実際に作成せずに、ラベルの配列を作成します。

for ループ内の最初の行として次の行を追加します。

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

配列のメンバーが に初期化されていません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 に答える