0

请,我如何获得位于 MdiParent 的“Windows”ToostripMenuItem 中的类似 Open And Active 子表单,如下图所示。但我想要它们水平,有什么办法吗?我感谢您的帮助。 在此处输入图像描述

更新:解决方案
我想出了一种方法来做我想做的事,这是解决方案
首先此代码是将 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):

在此处输入图像描述

4

0 回答 0