[英]WinForms UserControl How Do I Stop the control receiving focus
我有一个仅包含一个TextBox
的自定义UserControl
。
当我将控件设置为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
要回答您的直接问题,您需要将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
类继承的, Control
类是每个Windows窗体控件的基础。
http://msdn.microsoft.com/zh-CN/library/system.windows.forms.control.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.