我使用下面的代码重写了TabControl类的ItemSize属性。重写后,选项卡的大小却不随该属性修改而改变,请高手看看,是哪里出错了?
Public Event PropertyChanged As PropertyChangedEventHandler _
Implements INotifyPropertyChanged.PropertyChanged
Private TabSize As New Size
Public Overloads Property ItemSize() As Size
Get
Return TabSize
End Get
Set(ByVal value As Size)
TabSize = value
If TabSize.Height > 1 And TabSize.Width > 0 Then
originalItemSize = value
End If
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("ItemSize"))
End Set
End Property
------解决方案--------------------
Overloads -> Overrides
另外你这么写当你使用ItemSize.Size.Height = xxx的时候,Set不会触发,调用的是Get。
你应该让Size只读,同时使用Height Width属性来操作。
------解决方案--------------------
obj.ItemSize.Height = xxx
其实调用的是get
相当于
obj.Get_ItemSize().Height = xxx
或者说
Dim s As Size = obj.Get_ItemSize()
s.Height = xxx
而这么写才会调用set
obj.ItemSize = new Size(obj.ItemSize.Width, xxx)
它相当于
obj.Set_ItemSize(new Size(obj.ItemSize.Width, xxx))