我为我的mdi孩子制作了一个自定义边框。 Mdi子表单属性:
首先,当我将Windowstate的属性设置为Normal时,我的mdi孩子将不会显示,我猜它的大小为0;然后是0。 我尝试在Form_Load方法中设置大小,但仍然没有改变。 当我将FormBorderStyle更改为FixedSingle时,我可以看到非常小的形式,只需要足够的空间来双击标题栏。然后表格真的最大化了。
我只是不明白,这一切都让人很困惑。 并且由于windowstate最大化,我无法使用函数在屏幕上拖动表单,因为它认为它已经最大化了....
答案 0 :(得分:0)
你写过“WindowState = Maximized” 也许正因为如此,当父表格最大化时,您才会看到您的MDI表格 我建议你写“WindowState = Normal”,并在Form_Load中写“MDIForm.Size = ParentForm.Size”或(类似的东西)。
答案 1 :(得分:0)
尝试此代码 - 保证可以正常工作:
Public frmContainer As FormContainer
Public frmChild As FormChild
Public Sub OpenfrmChild()
If Not IsNothing(frmChild) AndAlso frmChild.Visible = False Then 'This applies after form has been closed
frmChild = Nothing '(frmChild does not test as nothing after being closed)
frmChild = New FormChild
frmChild.MdiParent = frmContainer
frmChild.Show()
ElseIf IsNothing(frmChild) Then 'This applies the first time form is opened
Try
frmChild = New FormChild
frmChild.MdiParent = frmContainer
frmChild.Show()
Catch ex As Exception
ErrorMsg(ex.Message() & "Description: " & ex.ToString)
End Try
Else 'This applies if form is visible and user clicks the button on FormChild again
frmChild.BringToFront()
End If
frmChild.WindowState = FormWindowState.Maximized
frmChild.Dock = DockStyle.Fill
End Sub