使用winforms,mdi,父级和子级表单,在父表单下的指定空间中打开子表单

时间:2011-03-29 12:26:45

标签: c# .net winforms parent-child mdi

我有一个winform MAINFORM,需要打开这种形式的子表单,如图所示。黑色部分是面板&会包含一个号码。具有多个节点的LinkLabels和Treeview。在部分的其余部分,我想在单击面板上的链接标签时显示子表单。

儿童表格应完全适合剩余的空间,即不包括面板所覆盖空间的空间。

请帮我解决一下代码,如何在左侧空间中填入新表格。

此外,我想问一下,我是否应该使用面板,或者是否有一些其他控件可以更高效或更好。 此外,MAINFORM是否需要成为MdiContainer? Diagram

2 个答案:

答案 0 :(得分:1)

我在右侧有一个用户控制界面,用于填充剩余空间,每次点击一个链接,我都会使用为该链接标签内容设计的特定控件填充控制界面。这样你就可以忘记MDI相关的任何东西,至少对我来说,它会更加整洁。

更详细,更简单一点,基本上每次单击左侧的链接时,您都会创建一个用户控件,显示该链接的相关内容并在右侧显示,停靠在主要形式,所以它填满了屏幕。

然后,当单击另一个链接时,将删除右侧的此控件并加载新控件。阅读有关创建用户控件的内容,并了解您对此方法的看法。

以下链接可让您入门:Creating and using Windows Forms Control Library (User Control) in C#.net

要将表单拆分为多个部分,请查看Splitter control

答案 1 :(得分:1)

Winforms已经自动执行此操作。您不必编写任何代码,只需在设计器中将面板控件的Dock属性设置为Left即可。 darkgray MDI客户端区域自动缩小以占用剩余空间。您创建的任何MDI子窗口都不会与面板重叠,它们被限制在MDI客户端区域。