« 端末の行数と列数をシェルに教える | トップページ | [WSH] 自IPアドレスの取得 »

2011年8月 8日 (月)

[VC2008] 起動時にテキストボックスにフォーカスを当てる

アプリ起動時に、テキストボックスにフォーカスを当てようと、フォームのLoadイベントハンドラに、「textBox1->Focus()」と記述したが、フォーカスが当たらない。

ヘルプを調べてみると、Focusメソッドが実行できるのは、「一定の条件」が成立しているときで、その「一定の条件」とは、

... ControlStyles の Selectable 値が true に設定されていること、コントロールが別のコントロールに格納されていること、およびすべての親コントロールが表示されており、有効であること ...

だそうだ。

つまり、フォームのLoadイベント発生時には、テキストボックスの親コントロールであるフォームが非表示であるため、「一定の条件」が満たされず、フォーカスも当たらなかった。

ということは、フォーム表示直後に発生するShownイベントでフォーカスを当ててやればよい、ってことかぁ。

//フォームのShownイベントハンドラ
private: System::Void Form1_Shown(System::Object^  sender, System::EventArgs^  e) {
   //フォーカス
   this->textBox1->Focus();
}

« 端末の行数と列数をシェルに教える | トップページ | [WSH] 自IPアドレスの取得 »

プログラム・スクリプト」カテゴリの記事

2021年6月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

Amazonリンク

ダイビング写真(swf)

ブログ内検索

  • Google
    WWW を検索
    ブログ内を検索

リンク(いつもお世話さま)

  • ソニーストア
     iTunes Store(Japan)
    Just MyShop(ジャストシステム)
    ブックオフオンライン
無料ブログはココログ