如何从c#中的另一个用户控件调用用户控件?

时间:2018-03-08 09:42:34

标签: c# winforms user-controls telerik

我有一个问题是从另一个用户控制用户控件控制我的代码,如下所示:

 public UserControl1()
        {
            InitializeComponent();
}

        private void commandBarButtonInsert_Click(object sender, EventArgs e)
        {


            UserControl2 usr2 = new UserControl2();
            this.Hide();
            this.Parent.Controls.Add(usr2);
}

它正在返回此错误:

  

System.NullReferenceException:未将对象引用设置为实例   对象

。我该如何解决这个问题?

3 个答案:

答案 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());