在面板中添加新标签时发生NullReferenceException

时间:2012-03-11 17:07:38

标签: c# winforms nullreferenceexception

我在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 个答案:

答案 0 :(得分:4)

您将控件添加到容器中 哪个应该是父表单,但是当您添加父表单时未设置 但是正确的方法是添加到面板的控件集合

panel1.Controls.Add(key);