Problém jsem již vyřešil. Třeba se to bude někomu hodit. - v MDiFormu mám prázdný ToolStrip pro ChildForm ToolStripItems a je Visible=false - při otevření ChildForm získám ToolStripItemsCollection a vložím do připraveného ToolStrip v MDi pomocí ToolStripManager.Merge. Zobrazím ToolStrip. - při deaktivaci ChildForm použiji ToolStripManager.RevertMerge - pokud není otevřen žádný ChildForm nastavím pro ToolStrip opět Visible=false
Public Class ChForm
Inherits ChildForm
Public Sub New()
' toto je ten otevirany ChildForm
Me.ChTsiColl = toolStrip1.Items
End Sub
End Class
Public Class ChildForm
Inherits Form
Private m_ChTsiColl As ToolStripItemCollection
Public Sub New()
End Sub
Public Property ChTsiColl() As ToolStripItemCollection
Get
Return m_ChTsiColl
End Get
Set(ByVal value As ToolStripItemCollection)
m_ChTsiColl = value
End Set
End Property
End Class
Public Partial Class MyMDiForm
Inherits Form
Private Sub ShowChildForm()
' vytvorim novou instanci ChildForm newChildForm
AddHandler newChildForm.Activated, AddressOf newChildForm_Activated
AddHandler newChildForm.Deactivate, AddressOf newChildForm_Deactivate
newChildForm.Show()
End Sub
End Class
Private Sub newChildForm_Activated(ByVal sender As Object, ByVal e As EventArgs)
Me.toolStripChildItems.Visible = True
Dim child As ChildForm = DirectCast(sender, ChildForm)
ToolStripManager.Merge(child.ChTsiColl, Me.toolStripChildItems)
End Sub
Private Sub newChildForm_Deactivate(ByVal sender As Object, ByVal e As EventArgs)
ToolStripManager.RevertMerge(Me.toolStripChildItems)
If Me.ActiveMdiChild Is Nothing Then
Me.toolStripChildItems.Visible = False
End If
End Sub
překládal jsem to ze C# tak snad je to dobře. Možná to lze vyřešit i nějak lépe. Jsem stále začátečník
|