最大化子窗体状态在MDI容器中使用时无法正常工作(Visual Basic 2013)

时间:2014-07-14 17:06:10

标签: vb.net winforms visual-studio-2010 visual-studio-2013

我在Visual Basic(2013)中遇到了这个奇怪的问题。我在MDI容器中有一个表单。它们都具有WindowStateMaximized的属性。执行时,MDI容器以最大化状态加载(到目前为止确定!)。但是,当我打开子窗体时,它不会给出实际最大化状态(尽管右上角的“恢复”按钮显示它已加载到最大化状态,但它没有最大化)。

我甚至在form1.WindowState = FormWindowState.Maximized之前和之后尝试了form1.Show(),但没有运气。

我也附了截图。注意MDI容器的死空间和子窗体的Restore图标(这意味着子窗体处于最大化状态)。

screenshot of VB problem

很少有观察 -

  1. 当我恢复然后再次最大化时,它会正确地最大化。

  2. 我还发现这个问题只发生过一次。我的意思是,如果我有2个表格都设置为加载最大化状态。当我打开第一个表单(无论哪个)时,它会像我在屏幕截图中显示的那样加载,之后当我打开第二个表单时,它会以最大化状态加载。

  3. 我无法弄明白,出了什么问题?如何纠正这个?

3 个答案:

答案 0 :(得分:5)

转到表单属性。设置windowstate =正常。然后把它放到代码

    Dim frmC As New frmChild
    frmC.MdiParent = Me
    frmC.WindowState = FormWindowState.Maximized
    frmC.Show()

答案 1 :(得分:1)

我发现将MDI子窗体设置为在类的New例程中最大化,总是正常。

Public Sub New()
    ' This call is required by the designer.
    InitializeComponent()
    ' Add any initialization after the InitializeComponent() call.
    Me.WindowState = FormWindowState.Minimized
End Sub

好的,最后一行可能是您在条件下编码的行...

答案 2 :(得分:0)

检查您的图标。它必须包含16x16页面。如果最小值为32x32,则会出现您所说明的问题。