我有一个 MDI 形式的面板,面板中有一些控件。当我打开 MDIChild 表单时,表单位于面板后面。我尝试了 forms.BringtoFront() 和 panel.SendtoBack()。但没有任何效果。然后我将面板的setchildIndex设置为0,也没有用。
有什么办法可以让面板始终位于所有表格后面?
谢谢
创建一个新的空表单,然后在 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();
}
无论你在后台想要什么,添加到空表单中......
问题是 MDI 子项的容器是面板的兄弟。面板位于该容器的顶部或后面。
您希望面板与 MDI 子项位于同一容器中,但我认为这是不可能的。MDI 容器包含 MDI 子项,仅此而已。
简而言之,我认为 MDI 不会为您提供所需的东西。
我只是在BringToFront
方法之后添加了Show
方法。
对我来说很好。
您能否将面板放入 MDI 子窗口并在 MDI 父窗口中固定其位置和大小?然后,只需在您的 MDI 父级中一次打开包含您的面板的一种类型的 MDI 子窗口即可。
放置一个flowlayout容器,将子元素添加到其中,它将位于其他面板的顶部