C# 如何在非DI类中设置子窗体的MDIParent属性?

C# 如何在非DI类中设置子窗体的MDIParent属性?,c#,mdi,mdichild,C#,Mdi,Mdichild,我正在开发具有子窗体的MDI应用程序。一旦满足特定条件,我必须显示子窗口 我创建了一个名为clsDashbord的单独类,其中包含方法loadDashboard(),该方法应该加载已经设计好的frmDashboard。代码如下: public void loadDashboard(String userName) { _Dashboard = new frmDashboard(); _Main = new frmMDI();

我正在开发具有子窗体的MDI应用程序。一旦满足特定条件,我必须显示子窗口

我创建了一个名为clsDashbord的单独类,其中包含方法loadDashboard(),该方法应该加载已经设计好的frmDashboard。代码如下:

 public void loadDashboard(String userName)
        {
            _Dashboard = new frmDashboard();
            _Main = new frmMDI();
           // _Dashboard.MdiParent = _Main;
            _Dashboard.Text = userName;
            _Dashboard.Show();

        }

如果我将MDIParent设置为Main(MDI表单的实例变量),则表单不会显示,否则它会显示。如何做?

通过查看行“\u Main=new frmdi();”看起来更像是一个范围问题

遵循以下步骤:

  • 创建名为“ReferenceTable”的类
  • 在ReferenceTable中创建名为_Main的静态变量
  • 设置可引用。_Main=new frmMain();//在Program.cs中
  • 在所有子窗体中设置childform.Parent=ReferenceTable.\u Main// 调用Show()或showDialog()方法之前的代码

  • 您是否已在mainmdi表单上将
    ismdicontainer
    设置为true?@blue是的。它确实显示其他形式_Dashboard.mdipparent=\u Main;通过这样做,它不会显示表单,否则,你有机会发布一个复制项目的样本吗?