如何停止控件接收焦点
本文关键字:焦点 控件 何停止 | 更新日期: 2023-09-27 18:13:38
我有一个自定义的UserControl
,只包含一个TextBox
。
当我将控件设置为Enabled = False
时,文本框被禁用,但控件不是(控件仍然触发Enter
事件)。
我如何确保UserControl
不会收到焦点?
我的Enabled属性看起来像这样:
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
要回答您的直接问题,您需要将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)
每个控件都有一个名为Enabled的属性。你不需要创建自己的属性。
此属性继承自Control
类,它是每个windows窗体控件的基础。