如果MDI子项最大化,则MDI父窗口的高度会在还原时(在最小化/最大化之后)缩小

时间:2018-11-19 21:11:37

标签: vb.net visual-studio-2017 mdi mdiparent

只要在子窗体最大化的情况下最小化或最大化MDI父窗体,MDI父窗体的高度就会缩小大约20px。

我开始使用.Net Framework 4.0时遇到了此问题,所以我尝试了其他版本,并继续遇到问题。

以下是一些要复制的步骤(这次尝试4.7.1):

  1. 关闭VS2017的所有实例并打开VS2017。
  2. 文件>新建>项目。
  3. 名称:MdiTest2;框架4.7.2;点击确定。
  4. 将Form1“ IsMdiContainer”设置为True。
  5. 右键单击项目>“添加”>“ Windows窗体...”,将其命名为ChildForm.vb。
  6. 再次单击双击表单Form1。
  7. 将Form1加载事件设置为以下内容:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim frm As New ChildForm
        frm.MdiParent = Me
        frm.WindowState = FormWindowState.Maximized
        frm.Show()

    End Sub
  1. 开始调试
  2. 将父窗体拖到某个位置,以便您注意到窗体高度的变化(将窗体底部与另一个窗体,图标或任务栏顶部对齐)。
  3. 最大化表单,然后单击恢复按钮...请注意表单大小调整
  4. 最小化表单,然后在任务栏上单击它的图标...
  5. (对于我来说)请注意调整表单大小,表单的顶部停留在原始位置,但底部边框向上移动了约20像素。
  6. 如果我继续单击任务栏上的应用程序图标,则每当还原表单时,它将继续缩小。

有人能复制吗?或者这仅仅是我机器上的错误?我的分辨率为2560x1440,缩放比例设置为100%。如果我将Form1和ChildForm上的AutoScaleMode从“字体”(默认)更改为“无”,则仍然有此问题。如果我在最小化/最大化MDI父级时没有最大化MDI子级表单,则还原后MDI父级的高度不会缩小。

1 个答案:

答案 0 :(得分:1)

经过大量搜索并且没有发现任何其他人遇到此bug,我开始问自己:“为什么其他人不会遇到此问题”。好吧,我的程序将没有MenuStrip,但是几乎所有MDI父窗体都有一个。因此,我预感会在表单中添加菜单条,从而解决了我的问题。然后,我将MenuStrip的可见性设置为false并进行了测试...它仍然可以将MenuStrip的可见性设置为false。