在离开一个控件时,我如何才能再次关注该控件
本文关键字:控件 离开 一个 | 更新日期: 2023-09-27 18:24:02
我有一个C#形式的TextBoxes。用户输入数据,然后当他们离开控件时(几乎总是点击Tab键),我检查数据以确保它是有效的。如果它是无效的,我想突出显示他们的文本,这样他们就可以立即修复它,而不是点击它
现在,在控制上。离开,我验证他们的输入。这很好用。然而,由于他们点击了Tab,在他们消除错误消息后,它会继续到下一个对象,即使我有((TextBox)sender).Focus();
我如何让上面的行在表单选项卡之后触发到下一个控件。
您可能需要查看Control.CausesValidation属性
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.causesvalidation(v=vs.110).aspx
您可以在用户离开焦点之前验证控件,而不是等待焦点本身移动。
下面是控件的MSDN文档。验证事件在获得/失去控件焦点时可以很好地安排事件序列。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.validating(v=vs.110).aspx
请注意Control.Validing和Control.Valided是如何在Control.LostFocus之前启动的。您可以在之前执行验证步骤,以允许用户失去文本框的焦点。
stackoverflow.com上也有一个很好的答案,它概述了如何做到这一点:C#正在验证winforms 上文本框的输入
如果处理Control.Validing事件,将e.Cancel设置为true将阻止焦点的更改。
请注意,此方法还将停止按钮的工作,因此您可能需要在某些按钮上将Control.CausesValidation设置为false。
您还需要主窗体上的以下代码段来允许关闭按钮工作:
protected override void OnFormClosing(FormClosingEventArgs e) {
e.Cancel = false;
base.OnFormClosing(e);
}
尝试使用TextBox
上的LostFocus
事件再次聚焦