2014-07-08 255 views
3

我有一個問題隱藏在mdi父窗體中的最大化狀態下的mdi子窗體的標題欄。vb.net mdi兒童標題欄不隱藏

下面是我在設計&運行時:我的MDI子窗體的 enter image description here

這是新的():

Public Sub New(ByRef pParent As Form) 
    MyBase.New() 
    Me.MdiParent = pParent 
    fParent = pParent 
    Me.Text = "" 
    Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None 
    Me.WindowState = FormWindowState.Normal 
    Me.MinimizeBox = False 
    Me.MaximizeBox = False 
    Me.ControlBox = False 
    Me.ShowIcon = False 
    Me.ShowInTaskbar = False 
    Me.SizeGripStyle = Windows.Forms.SizeGripStyle.Hide 
    Me.Dock = DockStyle.Fill 
End Sub 

我試過FormWindowState.MaximizedDockStyle.None代替,但結果是一樣的。

在父容器,從一個孩子變成另一個我使用此功能:

Protected Sub SetActiveScreen(ByVal pChildForm As tWizardForm) 
    If pChildForm Is Nothing Then Exit Sub 
    If fActiveScreen Is pChildForm Then Exit Sub 

    Dim hg As New tHourglass 
    Try 
     fActiveScreen = pChildForm 
     fActiveScreen.Show() 
     fActiveScreen.BringToFront() 
     For Each aForm In MdiChildren 
      If aForm IsNot fActiveScreen Then aForm.Hide() 
     Next 
     fActiveScreen.Execute() 
     UpdateCaption() 
    Finally 
     hg.Dispose() 
    End Try  
End Sub 

在設計我已經設置了parent屬性IsMdiContainer = True

我哪裏錯了,或者我錯過了什麼? 加上這種兒童標題欄上的雙按鈕真的很奇怪。當我點擊其中一個最大化按鈕時,我會得到相同的結果: enter image description here

生成的標題欄按鈕不能被點擊。

謝謝你的幫助!

+0

顯然你不喜歡MDI。所以不要使用它。該「子窗體」可以是您所停靠的用戶控件。 –

+0

@Hans Passant這可能實際上是最好的事情......因爲我永遠不會有幾個「孩子形式」同時顯示,我希望他們總是最大化。感謝您指出我明顯看不到的東西! – Joel

+0

我在C#.NET中遇到了同樣的問題.. – displayname

回答

1

嘗試移動

Me.MaximizeBox = False 

到子窗體的Load事件,這似乎在我的項目工作。

+0

我嘗試過單獨和/或與其他諸如「我」一起移動。ControlBox = False「,但結果相同。 – Joel

0

爲子窗體嘗試以下設置。

Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None 
+0

這已經是我在子窗體New()中做的事情了, – Joel

1

這是您的確切答案。它會解決你的問題。

添加的MenuStrip對MDI的形式,使之不可見的(可見= FALSE)

0

我得到這個由工作:

  1. 將孩子碼頭,填寫
  2. 將孩子WindowState到Normal(這是魔術彈)
  3. 使用Show方法而不是Focus方法