【问题标题】:Bring mdi child infront of mdi parent objects将 mdi 子对象放在 mdi 父对象前面
【发布时间】:2017-06-25 13:06:44
【问题描述】:

我正在 Visual Studio 2012 中处理一个 Windows 应用程序表单,我被困在 UI 设计部分。实际上,我正在尝试在所有控件对象(面板、表格布局面板)前面打开子窗体。 This the parent form

When I open a child form all the objects of parent form go back

这是我的 mdi 父表单中的代码

    frmControlAccount x;
    private void controlToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (x == null || x.IsDisposed)//to avoid multiple opening of forms
        {
            x = new frmControlAccount();
            x.MdiParent = this;
            x.Show();
        }
        else
        {
            x.Focus();
            x.BringToFront();
        }
    }

由于表单未显示,我也尝试了此代码

    private void MainPage_MdiChildActivate(object sender, EventArgs e)
    {
        if (ActiveMdiChild != null)
        {
            panel1.SendToBack();
            picHomepage.SendToBack();               
        }
        else
        {
            panel1.BringToFront();
            picHomepage.BringToFront();
        }
    }

【问题讨论】:

  • 你为什么要让它变得比它必须的更复杂?使用两个单独的表格并放弃“MDI”的想法。使用“MDI”方法似乎没有必要,只会使您想要实现的目标复杂化。

标签: c# winforms mdi


【解决方案1】:

您不能在 MDI Parent 窗体上放置控件,因为这会使 MDI Parent 的客户区变小,而 MDI Child 窗体将仅在 MDI Parent 的客户区可见。

例如,在您的 MDI 父级上放置一个面板(仅此而已)并将其停靠在左侧,其中 with 为 200。
您将看到您的 MDI 子窗体将可见,但您不能将它们移动到此面板上。 这就是 MDI 的工作原理。

如果您想在 MDI Parent 上显示图像,您可以通过自己在绘画事件中绘画来实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 2020-10-12
    相关资源
    最近更新 更多