0

我有一个UserControl包含一个按钮和一个文本框。用户应该再次填写文本框并单击按钮 - 以便将数据发送到表单并隐藏用户控件,或者按下Escape文本框 - 以便表单知道用户已取消进度。

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

所有用户控件、文本框和里面的按钮都TabStop设置为 false,但用户仍然可以通过按 Tab 键返回表单。

如何防止此用户控件上的选项卡功能?我想制定规则:单击按钮或按 Escape,没有标签失控,就是这样。

4

2 回答 2

0

在表单中的所有其他控件上设置TabStopfalse,以便在选项卡上焦点停留在那里。否则,在 OnKeyDown 或 OnKeyPress 事件中吞下按键。单出 tab 键并防止它被进一步处理:捕获键按下

于 2014-07-22T22:38:17.360 回答
0

在 UserControl 中使用 Validating 方法:

public partial class UserControl1 : UserControl {

  public UserControl1() {
    InitializeComponent();
  }

  protected override void OnValidating(CancelEventArgs e) {
    e.Cancel = (textBox1.Text.Trim() == String.Empty);
    base.OnValidating(e);
  }
}
于 2014-07-22T22:52:12.173 回答