我在Visual Basic(2013)中遇到了这个奇怪的问题。我在MDI容器中有一个表单。它们都具有WindowState
到Maximized
的属性。执行时,MDI容器以最大化状态加载(到目前为止确定!)。但是,当我打开子窗体时,它不会给出实际最大化状态(尽管右上角的“恢复”按钮显示它已加载到最大化状态,但它没有最大化)。
我甚至在form1.WindowState = FormWindowState.Maximized
之前和之后尝试了form1.Show()
,但没有运气。
我也附了截图。注意MDI容器的死空间和子窗体的Restore图标(这意味着子窗体处于最大化状态)。
很少有观察 -
当我恢复然后再次最大化时,它会正确地最大化。
我还发现这个问题只发生过一次。我的意思是,如果我有2个表格都设置为加载最大化状态。当我打开第一个表单(无论哪个)时,它会像我在屏幕截图中显示的那样加载,之后当我打开第二个表单时,它会以最大化状态加载。
我无法弄明白,出了什么问题?如何纠正这个?
答案 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,则会出现您所说明的问题。