vb.net mdi子标题栏没有隐藏

时间:2014-07-08 08:38:52

标签: .net vb.net mdi

我有一个问题是在.NET中的mdi父窗体中以最大化状态隐藏mdi子窗体的标题栏。

这就是我在设计和设计方面所拥有的运行: enter image description here

以下是我的MDI子表单的新():

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

在设计中,我设置了父属性IsMdiContainer = True

我哪里出错或者我错过了什么? 加上儿童标题栏上的这种双按钮真的很奇怪。当我单击其中一个最大化按钮时,我得到了相同的结果: enter image description here

无法点击生成的标题栏按钮。

感谢您的帮助!

4 个答案:

答案 0 :(得分:2)

这是你的确切答案。它会解决你的问题。

将MenuStrip添加到MDI表单并使其不可见(Visible = false)

答案 1 :(得分:1)

尝试移动

 Me.MaximizeBox = False

到子表格的加载事件,这似乎适用于我的项目。

答案 2 :(得分:0)

为子表单尝试以下设置。

  Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None

答案 3 :(得分:0)

我的工作是:

  1. 将子Dock设置为Fill
  2. 将子WindowState设置为Normal(这是魔术子弹)
  3. 使用Show方法,而不是Focus方法