我有一个UserControl
,其中包含一个按钮和一个文本框。用户应该使用eighter填充文本框并单击按钮 - 以便将数据发送到表单并隐藏用户控件,或者按文本框上的Escape
- 以便表单知道用户已取消进度。
问题在于,当用户按下文本框上的选项卡时,用户控件将被保留(之后隐藏 - 由于在离开时隐藏用户控件的策略),因此数据更快地发送到表单,用户也没有取消进展。
所有用户控件,文本框和内部按钮都将TabStop
设置为false,但用户仍然可以通过按Tab键返回到表单。
如何阻止此用户控件上的标签功能?我想制定规则:点击按钮或按Escape,没有标签失控,这就是它。
答案 0 :(得分:0)
在表单中的所有其他控件上将TabStop
设置为false
,以便在选项卡上保留焦点。否则,吞下OnKeyDown或OnKeyPress事件中的按键。单击Tab键并阻止其进一步处理:capture key presses。
答案 1 :(得分:0)
使用用户控件中的验证方法:
public partial class UserControl1 : UserControl {
public UserControl1() {
InitializeComponent();
}
protected override void OnValidating(CancelEventArgs e) {
e.Cancel = (textBox1.Text.Trim() == String.Empty);
base.OnValidating(e);
}
}