2つのボタンと2つのラベルのあるフォームがあります。
ボタン1=tabIndex = 0、ボタン2 = tabIndex = 1に設定したいのですが、tabIndexを2つのラベルに設定したくないので、ユーザーがタブを押すと、ボタン1からボタン2に移動します。
どうすればこれを行うことができますか?
LabelsのTabStopプロパティをfalseに設定し、ButtonsのTabIndexプロパティを任意の値に設定するだけです。デザイナの[プロパティ]ウィンドウで直接実行できます。
私の場合、すべてのラベルにがありませんTabStop property
。
TabIndexを-1
どちらにも設定することもできません。これは、と表示されるためProperty value not valid
です。
しかし、アプリケーションを実行すると、すべてのラベルのTabIndexの値に関係なく、キーボードのTabキーを押してもどのラベルでも停止しないことに気付きました。
これは、ラベルコントロールがフォーカスされないためです。Labelコントロールにフォーカスを取得させる唯一の方法は、Label.Focusメソッドを呼び出すことです。
詳細については、このフォーラムを読むことができます:MSDNフォーラム。
button1.TabIndex = 0;
button2.TabIndex = 1;
ラベルのデフォルトでは、TabStopがfalseに設定されています。これは、Tabキーを押してもフォーカスを取得できないことを意味します。
ラベルのタブストッププロパティをfalseに設定しますか?
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.tabstop.aspx
それ以外の場合は、ラベルのtabindex値をボタンの前の値に設定するだけです。次に、アクセラレータキーを使用してボタンをクリックできます。
MSDNのドキュメントによると、TabStopプロパティはLabelクラスとは関係がないため、TabStopをtrueに設定しても効果はありません。したがって、両方のラベルのタブインデックスを0に設定し、ボタン1はタブインデックス1を取得し、ボタン2はタブインデックス2を取得します。
デザイン環境では、ラベルにタブを付けることができます。ただし、Windowsフォームを実行する場合、ラベルをタブ化することはできません。したがって、TabStopやラベルのタブインデックスの調整は必要ありません。