最大化时MDI父级中的面板与子级重叠

本文关键字:重叠 MDI 最大化 | 更新日期: 2023-09-27 18:20:22

我正在使用VS2010和C#4.0编写一个windows应用程序。我有一个MDI父窗体,我需要在它的底部有一个"设置面板"。为此,我使用了一个无边框窗体。但现在,当应用程序运行时,当我最大化子窗体时,它会与设置面板重叠。我该如何避免这种情况?我的设置面板应该始终可见,并且永远不会与其他任何东西重叠。

最大化时MDI父级中的面板与子级重叠

不要为此使用Form。您应该使用一个简单的Panel。遵循以下简单步骤:

  1. 将主窗体的IsMdiContainer设置为false
  2. Panel添加到主Form,并将其固定到底部(或您喜欢的任何选项,左、右等)。此面板将是您的设置面板
  3. 将主窗体的IsMdiContainer设置回true
  4. 将所有相关控件添加到始终可见的设置面板中

步骤3和4可以按任何顺序执行。

首先将IsMdiContainer设置为false的原因是为了确保您可以将Panel停靠在Form的客户端空间内,而不是停靠到MdiContainer控件的客户端空间(当您将IsMdiContainer设置为CCD15时,设计器会自动添加CCD_11,同时将其停靠设置为Fill)。如果您将其停靠在MdiContainer内,则Panel将被您要打开的任何MdiChild隐藏。请注意,您不能直接与设计器中的MdiContainer控件交互。