C# 进行了循环控制参考。控件不能由其自身拥有或作为其父级

C# 进行了循环控制参考。控件不能由其自身拥有或作为其父级,c#,winforms,C#,Winforms,我正在使用Metro ui for windows应用程序 public partial class Distributor_Closing : MetroFramework.Forms.MetroForm { private object BtnClick(Button button, int index) { MetroFramework.Forms.MetroForm childForm = new Distributer_Closing_Info(sub

我正在使用Metro ui for windows应用程序

public partial class Distributor_Closing : MetroFramework.Forms.MetroForm
    {
 private object BtnClick(Button button, int index)
        {
    MetroFramework.Forms.MetroForm childForm = new Distributer_Closing_Info(sub_cat[index], Str, id, Convert.ToInt32(Mtddlstocks.SelectedValue));
                childForm.ShowDialog(this);
        }
}
当我关闭Distributer\u Closing\u Info子窗体时,出现上述错误

 public partial class Distributer_Closing_Info : MetroFramework.Forms.MetroForm
    {
 public Distributer_Closing_Info(int sub_cat,String dte,int stk_mas,int stkid)
        {
            InitializeComponent();
            sub_catid = sub_cat;
            StockDate = dte;
            Stkmasid = Convert.ToInt32(stk_mas);
            stk_id = stkid;
            LoadGrid();

        }
}

我认为这是使用MetroForm从MetroForm到MetroForm的一个问题; 如果使用System.Windows.Forms.Form,您的程序将运行良好

如前所述的解决方法

childForm.ShowDialog(null);
还是这个

childForm.ShowDialog();

在我的例子中,以下行触发了此异常WinForms:

this.splitContainer1.Panel1.Controls.Add(this.splitContainer1);

SplitContainer将自己添加到它自己的一个面板中。

请尝试childForm.ShowDialognull;取而代之的是。嗯……谢谢它奏效了!!!问题在于使用Metro框架。我使用了Metro框架,显示了这个错误,然后我改成了普通的windows窗体,它工作正常