2017-07-28 5 views
0

キャンセルとクリアの2つのボタンがあるウィンドウフォームを作成しました。 &としてボタンのテキストを入力してください。&は、ショートカットキーの組み合わせとしては、のAlt +キーとしてクリアされています。 Alt + cを押すとキャンセルボタンのみで動作します。 代わりに、VB6フォームでのタブ移動のように機能する、Windowsフォームのこれらの2つのボタンの間にタブが移動しないのはなぜですか。 Alt + cを押すと、これら2つのボタンの間を移動する必要があります。 これを実現するには、フォームプロパティまたはボタンプロパティを設定する必要がありますか?大文字と小文字を変更した場合の同じキーの組み合わせの場合、ALT +キーを使用するWindows形式のホットキー

答えて

0

ProcessCmdKeyメソッドをオーバーライドできます。 altキーを押してaltキーを離してからcキーを押すと、以下が機能します。

private bool altPressed; 
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    if (altPressed) 
     { 
      if (keyData == Keys.C) 
      { 
       this.SelectNextControl(ActiveControl, true, true, true, true); 
       altPressed = false; 
       return true; 
      } 
     } 
     if (keyData == (Keys.Menu | Keys.Alt)) 
     { 
      altPressed = true; 
      return true; 
     } 
    return base.ProcessCmdKey(ref msg, keyData); 
} 
関連する問題