我有一个父窗体设置为Mdi容器。我从父窗体中的菜单栏中单击加载名为Plot的子窗体。该代码是:C#窗体窗体:Mdi父窗体和子窗体问题
protected void menuPlot_Click(object sender, EventArgs e)
{
// ... load form with Plot settings in center of parent form
// ... create a new instance of the Plot settings child form
PlotSettings plotSettings = new PlotSettings();
// ... set Welcome as the parent form for the Plot settings child window
plotSettings.MdiParent = this;
// ... display and position Plot settings child form
plotSettings.StartPosition = FormStartPosition.CenterScreen; // center child form
plotSettings.Show(); // display child form
}
这种运作良好,除了我有以下问题:
有没有什么办法可以强制孩子形式留在中央。目前我能够在容器内拖动它。我想阻止用户移动它。我现在唯一能想到的就是让孩子形成无国界的边界,但我不确定这是否会奏效。
有什么办法可以让儿童表格模态?是的,我知道我可以制作孩子表格模式,但不会再被包含在父表格中,这正是我想要的。是否有一种方法可以在子窗体处于活动状态时禁用父控件?目前,我可以打开子窗体的多个实例,但我希望随时只有一个实例。
我在父窗体上有一些标签,标签总是坐在子窗体的顶部。有没有办法强制儿童表格成为最顶层?我使用TopMost,这似乎不起作用。
感谢您的任何帮助,您可能会提供。
这是三次“否”。你真的似乎不想使用MDI。使用另一个窗口模型,如http://sourceforge.net/projects/dockpanelsuite/ –
谢谢你的链接。您可能是对的,但我认为可能有办法 – Zeos6
您无法在父窗体上进行任何控制,如果它们可见,它们将始终显示在子窗体的顶部。看看这个答案,我给了一个simular [问题](http:// stackoverflow。com/a/4130055/479512) –