0

フォームをウィザード スタイルにしたいので、TabControl を使用してウィザードのページを TabPages として使用しました。実行時にタブが表示されるようにするなど、修正が必要な小さな問題がありました。TabControl を継承し、「TabsVisible」というプロパティを追加して修正しました。うまくいきました。(参照: http://dotnetrix.co.uk/tabcontrol.htm - HideTabs プロパティを追加して Tabitems のオン/オフを切り替えます)

しかし、次のような他の小さな問題があります。 1. Ctrl + Tab を押すと、タブが変更されます。これは、OnKeyDown メソッドをオーバーライドすることによって無効にされます 2. アクティブなカーソルがタブ リストにあり、矢印キーが押されると、現在のタブ ページが変更されます。どうすればこれを無効にできますか??

だから私の質問は - タブページが変更されないように、tabControl で矢印キーを無効にするにはどうすればよいですか?

4

4 に答える 4

1

つまり、タブ コントロールは必要ありません。パネルを使用して、ウィザードのさまざまなステップの GUI や、ウィザードのステップ自体のボタンなどを含めて、すべての問題を解決してみませんか? そうすれば、これらすべてから解放され、スタイルを適切に設定できるようになります - はるかにシンプルで柔軟です。

于 2009-07-13T06:40:09.807 に答える
0

矢印キーで TabControl のページを変更できないようにするには、KeyDown イベントを処理して、次のようにします。

private void tabControl_KeyDown(object sender, KeyEventArgs e)
{
    bool isArrowKey = e.KeyCode == Keys.Up || e.KeyCode == Keys.Down ||
                      e.KeyCode == Keys.Left || e.KeyCode == Keys.Right;

    e.Handled = isArrowKey;
}

基本的に、押されたキーが矢印キーの場合、イベントを処理済みとしてマークします。

于 2009-07-13T06:45:03.867 に答える