ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

SelectNext で矢印キーを使う 

更新 : 2010/12/31

 


解説:
通常、コントロールのフォーカスは、タブキーを押すと次のコントロールへ移動します。
ここでは、TWinControl の SelectNext メソッドで、フォーカスを次のコントロールに移してみます。

SelectNext メソッドを呼び出すと、現在のコントロールの次のコントロールが見つけられます。
SelectNext は以下の引数を渡して使います。
第一引数:検索を開始する現在のコントロールを指定。
第二引数:検索方向の指定。
               true であればタブ順で順方向に、false であれば逆方向にコントロールを検索。
第三引数:true にすることで、TabStop プロパティを true に設定したコントロールに移動。

使用例:
フォームが表示したら、アップ(↑)ダウン(↓)キーを押してみてください。
タブ順で順方向、あるいは逆方向のコントロールにフォーカスが移動します。

準備として Edit 三つと CheckBox、RadioButton をひとつずつ配置しておきます。

まず、コンストラクタで、アクティブコントロールより先に、フォームにキーボードイベントが発生するように KeyPreview プロパティを true にしておきます。
OnKeyDown イベントハンドラでアップ(↑)ダウン(↓)キーに応じて、フォーカスが移動するように SelectNext を記述します。

//-------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    KeyPreview = true;
}
//-------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
    TShiftState Shift)
{
    if (Key == VK_DOWN) SelectNext(ActiveControl, true, true);
    if (Key == VK_UP) SelectNext(ActiveControl, false, true);
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.