自定义是否覆盖UserControl的Enabled属性?

时间:2014-06-27 05:51:35

标签: .net vb.net user-controls controls

我有一个带有1个文本框和一个按钮的user_control。我希望以这种方式覆盖控件的Enabled属性,保持按钮始终启用,并且控件的启用/禁用仅影响文本框。

我如何存档? 提前谢谢。

编辑:我认为我的问题可能不太明确。实际上我已经覆盖了Enabled属性,如下所示,

Private m_Enabled As Boolean
Public Overloads Property Enabled() As Boolean
    Get
        Return m_Enabled
    End Get
    Set(ByVal value As Boolean)
        Button1.Enabled = True
        TextBox1.Enabled = value
        m_Enabled = value
    End Set
End Property

我在Panel1中放置了这个用户控件和其他一些文本框。我尝试逐个循环控制并禁用它。

    For Each panelControl As Control In Panel1.Controls
        panelControl.Enabled = False
    Next panelControl

在这种情况下,此启用的属性从未调用过。 (整个控件被禁用/启用)

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

问题在于您的演员:For Each panelControl As Control,它将使用控件的启用属性,而不是您的重载。

尝试转换:

For Each ctrl As UserControl1 In Panel2.Controls.OfType(Of UserControl1)()
  ctrl.Enabled = False
Next