3

我有一个 MDI 形式的面板,面板中有一些控件。当我打开 MDIChild 表单时,表单位于面板后面。我尝试了 forms.BringtoFront() 和 panel.SendtoBack()。但没有任何效果。然后我将面板的setchildIndex设置为0,也没有用。

有什么办法可以让面板始终位于所有表格后面?

谢谢

4

5 回答 5

2

创建一个新的空表单,然后在 Form_load 事件中设置该表单的以下属性

private void bg_Load(object sender, EventArgs e)
{
    this.ControlBox = false;
    this.FormBorderStyle = FormBorderStyle.None;
    this.WindowState = FormWindowState.Maximized;
}

然后,在 MDI 表单加载事件中编写以下代码

private void Main_Load(object sender, EventArgs e)
{
    bg bg = new bg(); // create object of empty form my empty form name is "bg"
    bg.MdiParent = this;
    bg.Show();
}

无论你在后台想要什么,添加到空表单中......

于 2013-06-22T08:32:42.060 回答
2

问题是 MDI 子项的容器是面板的兄弟。面板位于该容器的顶部或后面。

您希望面板与 MDI 子项位于同一容器中,但我认为这是不可能的。MDI 容器包含 MDI 子项,仅此而已。

简而言之,我认为 MDI 不会为您提供所需的东西。

于 2011-03-13T20:22:41.307 回答
0

我只是在BringToFront方法之后添加了Show方法。

对我来说很好。

于 2011-06-10T12:24:57.983 回答
0

您能否将面板放入 MDI 子窗口并在 MDI 父窗口中固定其位置和大小?然后,只需在您的 MDI 父级中一次打开包含您的面板的一种类型的 MDI 子窗口即可。

于 2011-03-14T00:51:36.173 回答
0

放置一个flowlayout容器,将子元素添加到其中,它将位于其他面板的顶部

于 2018-07-06T12:20:20.393 回答