请问,我如何获得位于" Windows"中的类似的Open And Active子表单。 MdiParent中的ToostripMenuItem如下图所示。但是我想要它们是水平的,无论如何都有吗?我感谢您的帮助。
更新:解决方案
我找到了一种方法来做我想做的事,这就是解决方案
首先这段代码是将一个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):