Я пытаюсь сделать простой элемент управления "ButtonPlus". основная идея заключается в наследовании от элемента управления кнопки и добавлении некоторых значений свойств по умолчанию (таких как шрифт, цвет, отступы ...)
Как бы я ни пытался, WinForm всегда генерирует (или «сериализует») значение свойства в клиентских формах
весь смысл в том, чтобы иметь минимальный и чистый код, а не то, что каждый экземпляр buttonPlus должен иметь 5 строк кода инициализации.
Я хочу, чтобы дизайнер форм не генерировал какой-либо код для этих свойств и мог управлять ими из кода ButtonPlus. Другими словами, если я изменю ForeColor с красного на синий, в приложении должна измениться только одна строка кода.
вот мой код. как вы можете видеть, я пытался использовать defaultvalue, reset, shouldserialize .... все, что мне удалось найти в Интернете!
Public Class ButtonPlus</p>
<pre><code>Inherits Button
Sub New()
AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink
Font = New System.Drawing.Font("Arial", 11.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(177, Byte))
Padding = New System.Windows.Forms.Padding(3)
Anchor = AnchorStyles.Left + AnchorStyles.Right + AnchorStyles.Top
ForeColor = Color.Aqua
End Sub
<DefaultValue(True)> _
Public Overrides Property AutoSize() As Boolean
Get
Return MyBase.AutoSize
End Get
Set(ByVal value As Boolean)
MyBase.AutoSize = value
End Set
End Property
Public Function ShouldSerializeAutoSize() As Boolean
Return False ' Not AutoSize = True
End Function
Public Function ShouldSerializeForeColor() As Boolean
Return False 'Not ForeColor = Color.Aqua
End Function
Public Overrides Sub ResetForeColor()
ForeColor = Color.Aqua
End Sub
Конечный класс
Большое спасибо, что нашли время, чтобы посмотреть на это и ответить
всего наилучшего