C#Winform Alter Sent Keystroke

时间:2009-06-13 12:51:33

标签: c# winforms key

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

我根本不想改变Tab键的行为,只需在右侧箭头键上执行相同的操作即可。

有人可以提出任何建议吗?

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分: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);
    }
}

答案 2 :(得分:0)

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

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

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