NullReferenceException возникает при добавлении новых ярлыков на панели - PullRequest
2 голосов
/ 11 марта 2012

Я добавил панель к Form1 компоненту.Эта панель называется panel1.

При просмотре общего списка я хочу динамически добавлять метки.Посмотрите на мой маленький код:

if (list.Count > 0)
{

    foreach (TLClass item in list)
    {
        Label key = new Label();
        key.Text = item.Key;
        panel1.Container.Add(key);  //here throws an exception

        Label code = new Label();
        code.Text = item.Code.ToString();
        panel1.Container.Add(code);

        Label en = new Label();
        en.Text = item.Languages["EN-EN"].ToString();
        panel1.Container.Add(en);


        Label fr = new Label();
        fr.Text = item.Languages["FR-FR"].ToString();
        panel1.Container.Add(fr);

        Label nl = new Label();
        nl.Text = item.Languages["NL-NL"].ToString();
        panel1.Container.Add(nl);

        Label ro = new Label();
        ro.Text = item.Languages["RO-RO"].ToString();
        panel1.Container.Add(ro);

        Form1.ActiveForm.Container.Add(panel1);
    }
}

После строки panel1.Container.Add(key); немедленно выдается исключение NullReferenceException.

Почему?Где моя ошибка?

enter image description here

Проблема решена Я позвонил с Controls вместо Container

1 Ответ

4 голосов
/ 11 марта 2012

Вы добавляете элементы управления в контейнер.
Какая родительская форма должна быть, но при добавлении родительская форма не установлена.
Однако правильный способ - добавить коллекцию элементов управления на панель * 1003.*

panel1.Controls.Add(key);
...