Пожалуйста, как я могу получить аналогичные открытые и активные дочерние формы, расположенные в «Windows» ToostripMenuItem в MdiParent, как показано на рисунке ниже. но я хочу их горизонтально, есть ли что-нибудь к этому? Я ценю вашу помощь.
ОБНОВЛЕНИЕ: РЕШЕНИЕ
Я нашел способ сделать то, что я хочу, и вот решение
Сначала этот код должен добавить ToolStripMenuItem в mdiparent на form_load
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
и этот код предназначен для удаления ToolStripMenuItem при закрытии формы в событии (Form_formclosing)
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
и установить задний цвет на красный для ToolStripMenuItem активной формы в событии MdiParent_MdiChilActivate
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):