我向 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
。
为什么?我的错误在哪里?
问题已解决
我调用了 Controls
而不是 Container
最佳答案
您将控件添加到容器中。
哪个应该是父窗体,但是当你添加父窗体时没有设置。
然而正确的方法是添加到面板的控件集合中
panel1.Controls.Add(key);
关于c# - 在面板中添加新标签时出现 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9656978/