请,我如何获得位于 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):