0

チェックボックスにショートカットキーを追加したい。チェックボックスにテキストがありません。ラベルとチェックボックスがあります。ラベルにはexのショートカットキーがあります。&見える。そのため、Label にはショートカット キーとして V があります。誰かが Alt+V を押すと、chechbox が選択された状態から選択されていない状態に変わり、逆の方法で同じになります。

4

2 に答える 2

2

ラベルコントロールは、キーボードニーモニックに関して特別です。ラベルはフォーカスを取得できないため、キーボードニーモニックを使用してラベルにフォーカスを設定しようとすると、ラベルはタブ順序の次のコントロールにフォーカスを設定します。

これは、ラベルを表示するための組み込み機能がないテキストボックスとコンボボックスでの使用を目的としています(チェックボックスとオプションボタンのコントロールとは対照的です)。これらのコントロールのニーモニックを設定するには、コントロールの横にラベルを配置し、そのニーモニックを設定して、タブ順序でテキストボックスの直前に表示されるようにします。このように、ユーザーがラベルのキーボードニーモニックをアクティブにすると、テキストボックスコントロールにフォーカスが自動的に設定されます。あなたはこれをWindowsのいたるところに見ました:

     ニーモニックとして使用されるラベルを持つテキストボックスの例

必要に応じて、チェックボックスコントロールを使用してまったく同じことを行うことができます(ただし、なぜそうしたいのかはよくわかりません)。ラベル()のニーモニックを設定してから、使用&Visibleするチェックボックスの横にラベルを配置します。Visual Studio IDEの構成オプションを使用してTabIndex、ラベルにタブインデックスnがある場合、チェックボックスコントロールにタブインデックスn+1があることを確認します。

オーバーライドする必要はなく、ProcessCmdKey他に難しいこともありません。

于 2012-01-13T10:58:10.930 に答える
2

次のコード部分を参照すると、このように確認できます。

        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            // look for the expected key 
            if (keyData == Keys.Alt && keyData == Keys.V)
            {
                checkBox1.Checked = true;
                return true;
            }
            else
            {
                checkBox1.Checked = false;
                return false;
            }
        }
于 2012-01-13T10:13:05.057 に答える