我创建了许多自定义控件,但仍在努力掌握界面。 除了创建自定义proerties之外,我还想要更改我在代码
之后尝试的自定义控件的一些基本属性Protected Overrides Sub OnControlAdded(e As ControlEventArgs)
Me.AutoCompleteMode = AutoCompleteMode.Suggest
Me.AutoCompleteSource = AutoCompleteSource.ListItems
MyBase.OnControlAdded(e)
End Sub
当我在表单上删除自定义控件时,这不起作用,我想解决方案在于添加属性并覆盖属性。
我为C#找到了答案,但没有成功理解/翻译为vb.net
答案 0 :(得分:0)
由于这些属性不可覆盖,请尝试改为使用Shadows修饰符:
Public Class MyComboBox
Inherits ComboBox
Public Sub New()
Me.AutoCompleteMode = AutoCompleteMode.Suggest
Me.AutoCompleteSource = AutoCompleteSource.ListItems
End Sub
<DefaultValue(AutoCompleteMode.Suggest)> _
Public Shadows Property AutoCompleteMode As AutoCompleteMode
Get
Return MyBase.AutoCompleteMode
End Get
Set(value As AutoCompleteMode)
MyBase.AutoCompleteMode = value
End Set
End Property
<DefaultValue(AutoCompleteSource.ListItems)> _
Public Shadows Property AutoCompleteSource As AutoCompleteSource
Get
Return MyBase.AutoCompleteSource
End Get
Set(value As AutoCompleteSource)
MyBase.AutoCompleteSource = value
End Set
End Property
End Class
请注意,DefaultValue属性可能不会按照您的想法执行操作:它实际上并未设置该属性的默认值。它用于告诉PropertyGrid属性的默认值是什么,如果它匹配它,它不会在PropertyGrid视图中使它成为粗体,它赢了&#39 ; t序列化设计器文件中的值。