我的自定义UserControl
只包含一个TextBox
。
当我将控件设置为Enabled = False
时,TextBox被禁用但控件不是(控件仍会触发Enter
事件)。
如何确保UserControl
无法获得焦点?
我启用的属性如下所示:
Private _Enabled As Boolean = True
Public Shadows Property Enabled As Boolean
Get
Return _Enabled
End Get
Set(value As Boolean)
_Enabled = value
txtTime.Enabled = value
End Set
End Property
答案 0 :(得分:3)
要回答您的直接问题,您需要将enabled属性传递给基础对象:
public new bool Enabled {
get { return _Enabled; }
set {
_Enabled = value;
textBox1.Enabled = value;
base.Enabled = value;
}
}
但是......正确的方法是使用OnEnabledChanged
覆盖:
protected override void OnEnabledChanged(EventArgs e) {
textBox1.Enabled = this.Enabled;
base.OnEnabledChanged(e);
}
(当你标记C#时,我假设你可以自己转换回VB.net)
答案 1 :(得分:2)
每个控件都有一个名为Enabled的属性。您无需创建自己的属性即可。
此属性继承自Control
类,它是每个Windows窗体控件的基础。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.aspx