c# - 在面板中添加新标签时出现 NullReferenceException

标签 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

最佳答案

您将控件添加到容器中。
哪个应该是父窗体,但是当你添加父窗体时没有设置。
然而正确的方法是添加到面板的控件集合中

panel1.Controls.Add(key);

关于c# - 在面板中添加新标签时出现 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9656978/

相关文章:

c# - 无法检测 Session 变量是否存在

c# - "The post' s 链接必须指向应用程序 's connect or canvas url"?

c# - 使用 Interop 从 excel 获取最后一个非空列和行索引

c# - 将位图转换为单色

c# - 如何将填充设置为 ListView 项目?

c# - 将 TextBox.Text 绑定(bind)到 DataSet.DataSetName

linq - ReSharper - 任何之后可能为 'System.NullReferenceException'

c# - WPF C# 应用程序从 SQL Server 获取数据的时间太长

c# - 在矩形内绘制字符串的动态字体大小

c# - NullReferenceException 未处理 - 不确定什么是 null