【问题标题】:How to set MDIParent property of Child form in nonMDI Class?如何在非MDI类中设置子窗体的MDIParent属性?
【发布时间】:2013-03-28 18:18:00
【问题描述】:

我正在开发具有子表单的 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 表单的实例变量,则表单不会显示,否则会显示。怎么做?

【问题讨论】:

  • 您是否在 mainmdi 表单上将 ismdicontainer 设置为 true?
  • @ImmortalBlue 是的,我有。它确实显示了其他形式。
  • _Main = new frmMDI(); _Dashboard.MdiParent = _Main; 这样做不会显示表单,否则会这样做
  • 你有机会发布一个样本复制项目吗?

标签: c# mdi mdichild


【解决方案1】:

通过查看“_Main = new frmMDI();”行,它看起来更像是一个范围界定问题

按照以下步骤操作:

  1. 创建一个名为“ReferenceTable”的类
  2. 在 ReferenceTable 中创建一个名为 _Main 的静态变量
  3. 设置 ReferenceTable._Main = new frmMain(); // 在 Program.cs 中
  4. set childform.Parent = ReferenceTable._Main //在你所有的子窗体中 调用 Show() 或 showDialog() 方法之前的代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多