我有一个问题是从另一个用户控制用户控件控制我的代码,如下所示:
public UserControl1()
{
InitializeComponent();
}
private void commandBarButtonInsert_Click(object sender, EventArgs e)
{
UserControl2 usr2 = new UserControl2();
this.Hide();
this.Parent.Controls.Add(usr2);
}
它正在返回此错误:
System.NullReferenceException:未将对象引用设置为实例 对象
。我该如何解决这个问题?
答案 0 :(得分:0)
尝试使用x:Name
引用控件,如果它们位于同一个XAML文件中,则使用指定的名称访问它们。
修改:此外,如果您获得NullReferenceException
,则问题在于您在NULL
对象上调用方法。
答案 1 :(得分:0)
this.Parent
为空,基本form
没有父级,但panel
例如可能有“父级属性。
此外,如果你想做this.Controls.Add(usr2);
之类的事情,你会得到System.ArgumentException
,因为你无法将表格添加到另一个表格(没有任何容器)
答案 2 :(得分:0)
问题是您没有尝试将控件添加到父级(可能是Form1),但您尝试将UserControl2添加为UserControl1的父级。这是不可能的。
快速和肮脏将是这样的:
UserControl2 usr2 = new UserControl2 ();
this.Hide();
Form1 parentForm = (this.Parent as Form1);
parentForm.Controls.Add(new usr2());