带有IF语句的ReadOnly属性

时间:2013-06-05 19:37:28

标签: .net vb.net inheritance if-statement properties

我正在尝试创建一个继承的控件。 我为这个名为“Flickering”的控件创建了一个布尔公共属性,以启用/禁用控件上的闪烁效果。

然后我想要的是仅在启用“闪烁”属性时“打开”下一个可覆盖的属性,但我不知道如何执行此操作:

Protected Overrides ReadOnly Property CreateParams() As CreateParams
If Disable_Flickering = True Then
    Get
        Dim cp As CreateParams = MyBase.CreateParams
        cp.ExStyle = cp.ExStyle Or &H2000000
        Return cp
    End Get 
End If
End Property

代码显然不起作用,但我认为我没有考虑正确的逻辑来做到这一点。

我怎么做?

  

解答:

''' <summary>
''' Enable/Disable any flickering effect on the panel.
''' </summary>
Protected Overrides ReadOnly Property CreateParams() As CreateParams
    Get
        If _Diable_Flickering Then
            Dim cp As CreateParams = MyBase.CreateParams
            cp.ExStyle = cp.ExStyle Or &H2000000
            Return cp
        Else
            Return MyBase.CreateParams
        End If
    End Get
End Property

1 个答案:

答案 0 :(得分:6)

不可能有条件地看到属性。如果有人在对象处于不适当状态时尝试更改或获取值,您也可以抛出异常。