更改自定义控件属性

时间:2017-02-08 17:31:53

标签: vb.net winforms combobox

我创建了许多自定义控件,但仍在努力掌握界面。 除了创建自定义proerties之外,我还想要更改我在代码

之后尝试的自定义控件的一些基本属性
Protected Overrides Sub OnControlAdded(e As ControlEventArgs)
    Me.AutoCompleteMode = AutoCompleteMode.Suggest
    Me.AutoCompleteSource = AutoCompleteSource.ListItems
    MyBase.OnControlAdded(e)
End Sub

当我在表单上删除自定义控件时,这不起作用,我想解决方案在于添加属性并覆盖属性。

我为C#找到了答案,但没有成功理解/翻译为vb.net

1 个答案:

答案 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序列化设计器文件中的值。