« 端末の行数と列数をシェルに教える | トップページ | [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アドレスの取得 »

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

2019年11月
          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(ジャストシステム)
    ブックオフオンライン
無料ブログはココログ