Добавление новых свойств
Добавление новых свойств
На следующем шаге класс будет дополнен свойствами MinValue и MaxValue. Программная реализация этих свойств выглядит весьма прямолинейно. При создании экземпляра переменным присваиваются значения 1 и максимальное значение типа Long соответственно. В дальнейшем необходимо проследить за тем, чтобы свойство MinValue не оказалось меньше 1, а свойство MaxVal ue не превышало предельной величины:
Private m_Min As Long = 1
Private m_Max As Long = Long.MaxValue
Public Property MinValue()As Long Get
Return m_Min End Get SetCByVal Value As Long)
m_Min = Math.Maxd,Value)
End Set
End Property
Public Property MaxValue()As Long Get
Return m_Max End Get Set(ByVal Value As Long)
m_Max =Math.Min(m_Min.Value)
End Set
End Property
Если включить этот код в проект и откомпилировать его, свойство будет поддерживаться элементом, но не будет отображаться в окне свойств. Проблема решается установкой атрибута Browsable для имени свойства:
<Browsable(True)> Public Property MinValue
Примерный вид окна свойств при установке атрибута Browsable для свойств MinValue и MaxValue показан на рис. 8.18.
Рис. 8.18. Свойства MaxValue и MinValue в окне свойств
Как видите, нестандартное свойство отображается в окне свойств, а свойства MaxValue и MinValue выводятся с начальными значениями, которые им были присвоены. Еще интереснее то, что окно свойств отвергает любые попытки изменения свойств способом, запрещенным в программе (например, присваивание MinValue значения, меньшего 1).
Чтобы свойство не отображалось в окне свойств, достаточно установить для него атрибут <Browsable(False)>. Запрет может устанавливаться как для новых, так и для переопределяемых свойств. Например, следующий фрагмент убирает стандартное свойство Text специализированного текстового поля из окна свойств:
<Browsable(False)> Public Overrides
Property Text() As String Get
Return MyBase.Text
End Get Set(ByVal Value As String)
MyBase.Text = Value
End Set
End Property
Как видно из рис. 8.19, свойство Text перестает отображаться в окне свойств.
Рис. 8.19. При установке атрибута Browsable свойство Text не отображается