2009-11-11 11 views
5

私のアプリケーションには、約7個のTabItemを持つTabControlを含むメインウィンドウがあります。各tabItemの中に私はUserControlを配置します。アプリケーション内のアクティブなタブを変更するショートカット

ユーザーがキーの組み合わせを押した後で、ユーザーインターフェイスが特定のタブにジャンプしたときに(アクティブなタブまたはコントロールに関係なく)そのようにしたいと思います。つまり、Firefox:alt + 1が最初のタブに移動するのと同じ動作、alt + nがNタブに移動します。

どうすればこの問題を解決できますか?または...私は何を探し始めるべきですか?

私はどのように起動するのか分からないという問題があるため、コードを表示することはできません。

おかげ

+0

私はあなたがいないことを前提としてい'Alt-42'を許可します。 – SLaks

+0

+1これは明らかに問題にならないためです。 –

+0

@Slacks:たぶん、42は生命、宇宙、そしてすべての答えです。私たちは未来のキーボードについて何も知らないのです。 :D – Jonathan

答えて

7

は、フォームのOnKeyDown(またはOnKeyUp)メソッドをオーバーライドし、trueにフォームのKeyPreviewプロパティを設定し、次のコードに入れて:(未テスト)

protected override void OnKeyDown(KeyEventArgs e) { 
    base.OnKeyDown(e); 
    if (e.Alt && e.KeyCode > '0' && e.KeyCode <= '9') { 
     tabControl.SelectedIndex = (int)(e.KeyCode - '1'); 
     e.Handled = true; 
    } 
} 
+1

優れています。それはうまくいくはずです。 –

+2

完全に動作確認済みです。私はe.KeyCodeをe.KeyValueだけ変更しました。ありがとう。 – Jonathan

関連する問題