.NET TIPS

Windowsフォームでタブ・オーダーを設定するには?

デジタルアドバンテージ
2004/06/25

 Windowsアプリケーションでは、[TAB]キー(順方向)や[SHIFT]+[TAB]キー(逆方向)を使い、Windowsフォーム上のコントロール間でフォーカスを移動できるのが一般的だ。

 このような[TAB]キーを使ったコントロール間のフォーカス移動はWindowsフォームの標準機能の1つだが、単純に上から順番に移動しているわけではない。この「移動する順番(以降、タブ・オーダー)」は開発者があらかじめ設定したものなのだ。

タブ・オーダーが正しく設定されていない場合

 もしタブ・オーダーが正しく設定されていなければ、フォーカス移動が不規則な使いにくいアプリケーションになってしまう。タブ・オーダーは画面の左上から右下へといったように、ユーザーが直感的に分かるようにすることが望ましい。

 例えば次の画面では、[お名前]テキストボックス(textBox1)、[住所]テキストボックス(textBox2)、[OK]ボタンという3つの項目があるので、[TAB]キーでフォーカス移動すると直感的には「お名前」「住所」「OK」という順番で移動すると想定できるが、タブ・オーダーが正しく設定されていないために、「お名前」「OK」「住所」という順番で移動してしまい使い勝手が悪い(ラベル・コントロールの項目は説明の都合上、無視している)。

正しくタブ・オーダーが設定されていないWindowsアプリケーション
直感的には「お名前」「住所」「OK」という順番で移動すると想定できるが、実際には「お名前」「OK」「住所」という順番で移動する。

 このようにタブ・オーダーが正しく設定されていないと、使い勝手の悪いWindowsアプリケーションになってしまう。よって、Windowsアプリケーションでは、タブ・オーダーの設定は不可欠だ。そこで本稿では、Windowsフォームでタブ・オーダーを設定する方法を紹介しよう。

タブ・オーダーの設定方法

 タブ・オーダーの設定は簡単である。まず、VS.NET IDEのWindowsフォーム・デザイナ上のWindowsフォームを選択した状態で、メニュー・バーから[表示]―[タブ オーダー]を実行する。すると、次の画面のようにタブ・オーダーの番号が表示される。

VS.NET IDEでのタブ・オーダー番号の表示
[お名前]テキストボックス(textBox1)には「0」、[住所]テキストボックス(textBox2)には「2」、[OK]ボタンには「1」の番号が割り振られている。[お名前]ラベルと[住所]ラベルに「3」「4」という番号が割り当てられているが、ラベル・コントロールはフォーカスを受け取らないので、「2」の後のフォーカス移動では、この「3」と「4」は飛ばされて、再び「0」に戻るので注意してほしい。なお、タブ・オーダーの番号は0始まりである。

 上の画面のようにタブ・オーダー番号が表示されたら、次に、正しいタブ・オーダー順にコントロールをクリックしよう。この画面の例では、[お名前]テキストボックス、[住所]テキストボックス、[OK]ボタンの順にクリックすればよい。

タブ・オーダー番号の再割り当て
タブ・オーダー番号を割り当て直すには、正しいタブ・オーダー順にコントロールをクリックする。この画面の例では、[お名前]テキストボックス(textBox1)、[住所]テキストボックス(textBox2)、[OK]ボタンの順にクリックすればよい。
  タブ・オーダー番号を割り当てるには、Windowsフォーム上のコントロール(この例では[OK]ボタン)をクリックする。

 すると、上の画面のようにタブ・オーダーの番号が修正される。このときプログラム・コードでは、各コントロール(System.Windows.Forms名前空間のControlクラスを継承したオブジェクト)のTabIndexプロパティにタブ・オーダー番号の値が設定される。

 正しいタブ・オーダー番号になれば、再度、メニュー・バーから[表示]―[タブ オーダー]を実行して、タブ・オーダー番号を非表示にすれば完了だ。これで、プログラムをビルドして実行すると、正しいタブ・オーダーでフォーカス移動できるようになる。End of Article

カテゴリ:Windowsフォーム 処理対象:キーボード
関連TIPS:Windowsフォームでグループ化されたコントロールのタブ・オーダーを設定するには?
 
この記事と関連性の高い別の.NET TIPS
Windowsフォームでグループ化されたコントロールのタブ・オーダーを設定するには?
Windowsフォームのロード時に任意のコントロールへフォーカスを設定するには?
Windowsアプリのコントロールで[Tab]キーによるフォーカスを与えないようにするには?
Windowsフォームでコントロールの配置や重なりを調整するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH