【发布时间】:2018-05-27 10:47:13
【问题描述】:
是否可以在自定义表单上添加DesignerVerbs?我尝试为我的自定义表单类制作一个自定义设计器类并像这样使用它......
<Designer(GetType(CustomDesigner))>
Public Class CustomForm
Inherits Form
'...
End Class
我也尝试像这样在我的自定义表单的类中完成所有“工作”...
Imports System.ComponentModel.Design
Public Class CustomForm
Inherits Form
'...
Private _Verbs As DesignerVerbCollection
Public ReadOnly Property Verbs() As DesignerVerbCollection
Get
If _Verbs Is Nothing Then
_Verbs = New DesignerVerbCollection From {
New DesignerVerb("Verb1", New EventHandler(AddressOf EventHandler1)),
New DesignerVerb("Verb2", New EventHandler(AddressOf EventHandler2))
}
_Verbs(0).Visible = False
_Verbs(1).Visible = True
End If
Return _Verbs
End Get
End Property
Private Sub EventHandler1(ByVal sender As Object, ByVal e As EventArgs)
'...
End Sub
Private Sub EventHandler2(ByVal sender As Object, ByVal e As EventArgs)
'...
End Sub
End Class
但没有运气。
【问题讨论】:
-
为什么
CustomForm中有Verbs? -
@RezaAghaei:在这种情况下,用于大规模恢复某些属性。
-
您想在设计器中显示的动词应该来自您为表单注册的设计器类。您需要发布
CustomDesigner代码。 -
@RezaAghaei:我已经创建了一个带有我想要显示的动词的自定义设计器,我从我的自定义表单的类中“调用”了这个自定义设计器类,但是什么都没有!!!
-
这也与您的另一个问题Hide form's DoubleBuffered property without make it nonfunctional 有关,该问题使用相同的技术来避免编写自定义设计器。
标签: .net vb.net winforms custom-controls windows-forms-designer