1

こんにちは、特定のフォームにいくつかのテキストボックスが入力された C# winform アプリケーションがあります。右矢印キーを押すと、タブキーを押すのと同じ動作を模倣するようにしたいと思います。これを行う方法がよくわかりません。

タブキーの動作をまったく変更したくありません。そのフォームで右矢印キーを使用して同じことを行うだけです。

誰でも提案できますか?

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 に答える