防止用户退出' UserControl '与按tab

本文关键字:与按 tab UserControl 用户 退出 | 更新日期: 2023-09-27 18:14:29

我有一个包含按钮和文本框的UserControl。用户应该填充文本框并单击按钮-这样数据被发送到表单并且用户控件被隐藏,或者按下文本框上的Escape -这样表单就知道用户已经取消了进度。

问题是,当用户按下文本框上的tab时,用户控件被离开(并且随后隐藏-由于离开时隐藏用户控件的策略),因此没有数据被发送到表单,也没有用户取消进度。

所有的用户控制,文本框和里面的按钮都有他们的TabStop设置为假,但用户仍然可以回到表单与按tab。

如何阻止这个用户控件上的选项卡功能?我想制定一个规则:点击按钮或按Escape键,没有tab失控,就是这样。

防止用户退出' UserControl '与按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);
  }
}