【问题标题】:using winforms , mdi , parent and child form, opening child forms in specified space under the parent form使用 winforms , mdi , 父子窗体,在父窗体下的指定空间打开子窗体
【发布时间】:2011-03-29 12:26:44
【问题描述】:

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

子窗体应完全适合剩余空间,即不包括面板覆盖的空间。

请帮我写代码,如何在左侧空间中放置新表单。

另外,我想问一下,我应该使用面板还是有一些其他的控件可以在这里更有效或更好。 此外,是否需要将 MAINFORM 设为 MdiContainer?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我会在右侧停靠一个用户控件界面以填充剩余空间,并且每次单击链接时,我都会使用为该链接标签内容设计的特定控件填充控件界面。这样你就可以忘记任何与 MDI 相关的事情,至少对我来说,它会更整洁。

      更详细一点,更简单一点,基本上每次单击左侧的链接时,您都会创建一个用户控件来显示该链接的相关内容并将其显示在右侧,停靠在主窗体,使其填满屏幕。

      然后当点击另一个链接时,右边的这个控件被移除并加载新的。阅读有关创建用户控件的内容,看看您对此方法的看法。

      这里有一个链接可以帮助您入门:Creating and using Windows Forms Control Library (User Control) in C#.net

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

      【讨论】:

      • 先生,您能帮我解决一下用户控制界面的问题吗?也就是说,我是否必须通过转到“项目”菜单然后从那里添加一个用户控件来添加它,这是您所说的用户控件吗?
      • 是的,它与您可以通过转到项目菜单添加的相同,但其中很多都必须在代码中完成。我会更详细地更新我的答案
      • 先生,请同时提及代码,会有很大帮助吗?你也没有告诉我正在使用的面板,我应该使用它吗?
      • 另外,我希望显示的子表单不能移动和固定,就像它们被粘在左边的空间一样。
      • 先生,我按照你说的做了,我添加了一个用户控件,使用 dock = right 并设置 formbackcolor = black。现在在表单黑色部分上我放了一个标签,当我单击它时,会显示一个新表单,但该表单没有填充到用户控件中,它的位置是它在主窗体黑色部分上方的一半和一半上方用户控制。请指导我如何设置新子窗体的位置。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多