Для его реализации делаю следующее:
Беру и делаю свой UserControl с названием UserTextBox унаследовав его от стандартного контрола TextBox
- Код: Выделить всё
Public Class UserTextBox
Inherits TextBox
И делаю два противоположных по эффекту свойства:
- Код: Выделить всё
Public Overloads Property Visible As Boolean
Get
Return MyBase.Visible
End Get
Set(ByVal value As Boolean)
MyBase.Visible = value
End Set
End Property
Public Property NoVisible As Boolean
Get
Return Not MyBase.Visible
End Get
Set(ByVal value As Boolean)
MyBase.Visible = Not value
End Set
End Property
И все работает не так как надо. Если изменить значение одного свойства, то значение другого не изменяется. В VB6 можно было сделать PropertyChanged и все работало бы как надо, а тут так не сделаешь. Второй нюанс заключается в том, что свойство Visible действует только в рантайме, в режиме разработки, при изменении свойства контрол всегда остается видимым. И переопределенное свойство Visible так и работает, а вот его антагонист NoVisible при выставлении флага делает контрол невидимым прямо в режиме разработки. Что я не так делаю? И как сделать правильно. В MSDN на эту тематику я ответа не нашел.