防止用户退出' UserControl '与按tab
本文关键字:与按 tab UserControl 用户 退出 | 更新日期: 2023-09-27 18:14:29
我有一个包含按钮和文本框的UserControl
。用户应该填充文本框并单击按钮-这样数据被发送到表单并且用户控件被隐藏,或者按下文本框上的Escape
-这样表单就知道用户已经取消了进度。
问题是,当用户按下文本框上的tab时,用户控件被离开(并且随后隐藏-由于离开时隐藏用户控件的策略),因此没有数据被发送到表单,也没有用户取消进度。
所有的用户控制,文本框和里面的按钮都有他们的TabStop
设置为假,但用户仍然可以回到表单与按tab。
如何阻止这个用户控件上的选项卡功能?我想制定一个规则:点击按钮或按Escape键,没有tab失控,就是这样。
将窗体中所有其他控件的TabStop
设置为false
,以便在选择标签时焦点保持在那里。否则,吞下OnKeyDown或OnKeyPress事件中的按键。单个tab键退出并防止它被进一步处理:捕获按键
在UserControl中使用validation方法:
public partial class UserControl1 : UserControl {
public UserControl1() {
InitializeComponent();
}
protected override void OnValidating(CancelEventArgs e) {
e.Cancel = (textBox1.Text.Trim() == String.Empty);
base.OnValidating(e);
}
}