vb.net如何在MenuStrip水平内部的MDIparent中获取活动和打开表单的列表?

时间:2018-05-09 21:40:25

标签: vb.net forms mdichild mdiparent

请问,我如何获得位于" Windows"中的类似的Open And Active子表单。 MdiParent中的ToostripMenuItem如下图所示。但是我想要它们是水平的,无论如何都有吗?我感谢您的帮助。 enter image description here

更新:解决方案
我找到了一种方法来做我想做的事,这就是解决方案 首先这段代码是将一个ToolStripMenuItem添加到form_load上的mdiparent

  Me.MdiParent = MDIParent1
    mdf.BackColor = Color.Red
    mdf.Text = Me.Text
    AddHandler mdf.Click, AddressOf mdf1_Click
    MDIParent1.MenuStrip.Items.Add(mdf)

然后是表单上的ToolStripMenuItem点击处理程序

Private mdf As New ToolStripMenuItem
Private Sub mdf1_Click(ByVal sender As Object, ByVal e As EventArgs)
    Me.BringToFront()
End Sub

此代码是在(Form_formclosing)事件中关闭表单时删除ToolStripMenuItem

Try
        Dim ParentForm As MDIParent1 = MDIParent1
        Dim OptionsMenuStrip As MenuStrip = ParentForm.Controls("MenuStrip")
        Dim Items As ToolStripItemCollection = OptionsMenuStrip.Items
        Dim removeThese As New List(Of ToolStripMenuItem)
        For Each Item As ToolStripMenuItem In Items
            If Item.Text = Me.Text Then
                removeThese.Add(Item)
            End If
        Next
        For Each item In removeThese
            Items.Remove(item)
            item.Dispose()
        Next
    Catch ex As Exception
        MsgBox(ex.Message)

    End Try

并在MdiParent_MdiChilActivate事件中将活动表单的ToolStripMenuItem的背景颜色设置为红色

Private Sub MDIParent1_MdiChildActivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MdiChildActivate
    Try
        Dim activeChild As Form = Me.ActiveMdiChild
        Dim ParentForm As MDIParent1 = Me
        Dim OptionsMenuStrip As MenuStrip = ParentForm.Controls("MenuStrip")
        Dim Items As ToolStripItemCollection = OptionsMenuStrip.Items
        For Each Item As ToolStripMenuItem In Items
            If Item.Text = activeChild.Text Then
                Item.BackColor = Color.Red
            Else
                Item.BackColor = Color.LightGray
            End If
        Next
    Catch
    End Try
End Sub

和结果:(活动表格是红色的ToolStripMenuItem):

enter image description here

0 个答案:

没有答案