1

嗨,我有一个 C# winform 应用程序,其中包含一个特定的表单,其中填充了许多文本框。我想通过按右箭头键来模仿与按 Tab 键相同的行为。我不确定该怎么做。

我根本不想改变 tab 键的行为,只要在那个表单上用右箭头键做同样的事情。

任何人都可以提供任何建议吗?

4

3 回答 3

2

您应该覆盖表单中的 OnKeyUp 方法来执行此操作...

protected override void OnKeyUp(KeyEventArgs e)
{
    if (e.KeyCode == Keys.Right)
    {
       Control activeControl = this.ActiveControl;

       if(activeControl == null)
       {
            activeControl = this;
       }

       this.SelectNextControl(activeControl, true, true, true, true);
       e.Handled = true;
    }

    base.OnKeyUp(e);
}
于 2009-06-13T13:30:13.460 回答
0

我认为这将完成您的要求:

private void form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Right)
    {
        Control activeControl = form1.ActiveControl;
        // may need to check for null activeControl
        form1.SelectNextControl(activeControl, true, true, true, true);
    }
}
于 2009-06-13T13:23:22.620 回答
0

您可以使用表单上的 KeyDown 事件来捕获击键,然后执行您想要的任何操作。例如:

 private void MyForm_KeyDown(object sender, KeyEventArgs e)
 {
     if(e.KeyCode == Keys.Right)
     {
         this.SelectNextControl(....);
         e.Handled = true;
     }
 }

不要忘记将表单上的 KeyPreview 属性设置为 True。

于 2009-06-13T13:26:26.513 回答