2
我为自定义控件(背景面板(PannelloSfondo
))创建了自定义设计器(PannelloSfondoDesigner
)。.NET Windows窗体自定义设计器不刷新菜单
<Designer(GetType(PannelloSfondo.PannelloSfondoDesigner))>
Public Class PannelloSfondo
Inherits UserControl
Friend Class PannelloSfondoDesigner
Inherits ParentControlDesigner
Public Overrides Sub Initialize(ByVal component As IComponent)
MyBase.Initialize(component)
verbDock = New DesignerVerb("Dock to parent container", New EventHandler(AddressOf Me.OnDock))
verbUndock = New DesignerVerb("Undock from parent container", New EventHandler(AddressOf Me.OnUndock))
verbs = New DesignerVerbCollection()
If Me.Control.Dock = DockStyle.Fill Then
verbs.Add(verbUndock)
Else
verbs.Add(verbDock)
End If
End Sub
Public Overrides ReadOnly Property Verbs() As DesignerVerbCollection
Get
Return verbs
End Get
End Property
Private Sub OnDock(ByVal sender As Object, ByVal e As EventArgs)
'Dim verbo As DesignerVerb = DirectCast(sender, DesignerVerb)
verbs.Clear()
verbs.Add(verbDock)
Me.Control.Dock = DockStyle.Fill
End Sub
Private Sub OnUndock(ByVal sender As Object, ByVal e As EventArgs)
verbs.Clear()
verbs.Add(verbUndock)
Me.Control.Dock = DockStyle.None
End Sub
Public Overrides Function CanBeParentedTo(ByVal parentDesigner As IDesigner) As Boolean
Return True
End Function
Private verbs As DesignerVerbCollection = Nothing
Private verbDock As DesignerVerb
Private verbUndock As DesignerVerb
End Class
End Class
它的工作原理,我点击小箭头,在出现的上下文菜单:
我点击菜单项,在事件被触发,该控件停靠:
但菜单描述没有更新或刷新(它应该显示“从父容器中取消”)。然后,如果我点击控制之外,取消选择它,然后我点击回到箭头以显示菜单,显示右键菜单项:
如何刷新菜单项? 谢谢。
是啊,但遗憾的是这并没有解决不刷新:( – vulkanino
@vulkanino更新的代码。 – LarsTech
它只是岩石!谢谢。 – vulkanino