容器形式的控件来自子形式?

haa*_*nsi 3 c# mdi mdichild .net-3.5 winforms

在容器形式中,我有菜单和按钮来打开表格. 在此输入图像描述

在这里,当我打开任何形式时,我遇到一个问题,这些按钮和标签来自新打开的表格. 在此输入图像描述

请指导我如何管理这个问题?我想打开一个新表单并将这些容器表单的控件保留在它的后台.

Han*_*ant 6

我想我明白你做了什么。您正在使用 MDI,并将菜单标签和按钮放在 MDI 父窗体上。您对 MDI 客户端窗口做了一些操作,它通常是深灰色的。也许您已经知道如何更改其 BackColor 或更改 Windows 系统颜色。

是的,你的截图就是预期的结果。问题在于 MDI 客户端窗体是 MDI 客户端窗口的父级。这使得它们显示在您放置在父窗体上的控件后面。

没有解决方法,您将不得不更改您的用户界面。要保留 MDI,请将 Panel 放在父窗体上并将其 Dock 属性设置为 Left。将菜单控件移至其上。MDI 客户端窗口现在将缩小,占据父窗体的剩余部分。子窗体会将自己限制在该区域。令人痛苦的一点是,您必须重新组织菜单以适应面板中更小的可用空间。


小智 5

我也遇到了同样的问题.我有一个替代解决方案,如下所述:

  1. 插入计时器控件
  2. 我在面板容器中添加了控件
  3. 并做了以下

    private void timer1_Tick(object sender, EventArgs e)
    {
        if ((int)MdiChildren.GetLength(0) > 0)
        {
            panel1.Visible = false;
        }
        else
        {
            panel1.Visible = true;
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)