• ベストアンサー

C#FormのLoadイベントについて

C#FormのLoadイベントのタイミングは、ウィンドウプロシージャで受け取るWM_XXXXのメッセージで表すと、どのメッセージに該当するのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

強いてあげるなら WM_SHOWWINDOW でしょうか Form_Loadの { にブレークポイントを設定して 呼び出し履歴で確認すると グレーの文字で9行ほど手前にあります

RabbitWrap
質問者

お礼

回答ありがとうございます。 >Form_Loadの { にブレークポイントを設定して >呼び出し履歴で確認すると グレーの文字で9行ほど手前にあります 確かにWM_SHOWWINDOWのようですね。

関連するQ&A

  • VB6でForm_Load中にイベントを発生させない方法

    VB6でForm_Loadにオプションボタンの選択を変更するとオプションボタンのクリックイベント(選択変更)が動作してしまいます。 Form_Loadの初期表示の設定をしているときは、オプションボタンのイベントを無効にしたいのですがどのようにしたら良いでしょうか? RemoveHandler等の処理があるみたいですが良く分かりません。 良い方法を教えてください。 宜しくお願いします。。

  • Form_Load と Form_Activate のタイミング

    あるデータ入力アプリを作っています。 親フォーム(Form0)で番号を決め、子フォーム(Form1,Form2,Form3,Form4) でデータ入力し、それぞれの子フォームを出るとき(Unload Me) に、変数にsaveしています。それを親フォーム(Form0)で登録を選択したとき、入力データをチェックしてDBに格納しています。 すでにDB格納済のデータの場合、親フォームでDBから変数に読み込み、子フォームのForm_Loadで展開しています。 そこで困っているのは、親と子のフォームを行き来するときにデータの表示で前のが残っていたり、消えてしまったりします。 Form_LoadとForm_Activateを通過するタイミングが、ちゃんと理解できていないためコードの記述位置が不適切なのだと思います。 Form_Load と Form_Activate の実行タイミングについて、お教えください。

  • Form1_Loadイベントのコードよりプロパティが優先?

    vb2005です。 フォーム1にDataGridView1を設置し、アクセスのテーブルにバインドしています。 デザインのプロパティでは「30」、 コードの Form1_Loadイベントには Me.DataGridView1.RowTemplate.Height = 15 として実行すると、 最初は30の行の高さで表示され、 フィールド部分をクリックして並べ替えると、 15になります。 Form1_Loadイベントに、 MsgBox(Me.DataGridView1.RowTemplate.Height) Me.DataGridView1.RowTemplate.Height = 15 MsgBox(Me.DataGridView1.RowTemplate.Height) としてみたら、 「30」→「15」となりました。 と言うことは、フォーム表示時には15にならなければいけないのに、30の高さで表示されます。 どういうことなのでしょうか? よろしくお願いします。

  • C# MainForm_Load エラーで終了には

    C#を勉強中です。 Windowsフォームアプリケーションで、 MainForm_Load() 内でエラーが起こったためプログラムを終了したい場合、 例えば、なにか動作環境を定義した設定ファイルがあって、 その内容を読み込んで動作したい場合で、 MainForm_Load()内でその読み込みを行っているが、 ファイルがないなどで失敗したため処理を終わらせたい場合、 MainForm_Load() 内で Environment.Exit() としていいものでしょうか? そもそも MainForm_Load() 内でこういった初期処理をしてもいいものでしょうか? Shown ですべき? というのも、むかーし、ほんの少しだけ MFC VC++ をかじったことがあって、 そのときは、初期エラーで処理を終了させたい場合、 WM_CLOSE ウィンドウメッセージを Post してたような記憶があるもので...。 なんか、MainForm_Load() を途中で終了させてしまっていいのだろうか、と思った次第です。 よろしくお願いします。

  • C# のイベントって

    C#を勉強中の者です。 むかし MFC VC++ を少しだけかじったことがありまして、 その中で、ウィンドウメッセージというものをよく利用していました。 C#ではイベントというものをよく利用するようですが、 これは MFC C++ でいうところのウィンドウメッセージと同じようなものでしょうか。 つまり、イベントというのは、メッセージキューにためられたメッセージが処理される際に呼ばれるものなのでしょうか。 仮にそうだとすると、イベントを発行するというのは、ウィンドウメッセージを送るのと同じようなものでしょうか。 ウィンドウハンドルとかないし、違うような気がしますね...。 でも、割り込みというのとは違いますよね...? 入門書は読んだんですが(いくつも読んだわけではないのですが...)、 使い方は書いてあってなんとなく理解はできた一方、 仕組み的なところがしっくりきません。 分かりやすい説明をいただけるとうれしいです。 よろしくお願いします。

  • フォームを開く時のイベント処理

    Visual Basic 6.0 あるフォーム読込時イベント[Private Sub Form_Load()]で コマンドボタンにフォーカスを移動しようとしたら、エラーしてしましました。 Private Sub Form_Load() CommandButton.SetFocus ’プロシージャの呼び出し、または引数が不正です End Sub Form_Open や BeforeUpdate ? 開いた後にフォーカスをセット出来る イベント処理は無いでしょうか? ご教授願います。

  • Form_LoadでDB接続ではなく、Form_Load完了でDB接続したい

    VB.NETです。 現在、Form_LoadにDB接続のコードを記述していますが、Form_Load完了後に、DB接続の命令を実行することはできますでしょうか? つまり、Form_Loadが完了したら、DB接続のコードが実行されるようにしたいのです。 理由は、DB接続に時間がかかる場合、Form_Loadによる画面がなかなか出てこない。 また、DB接続エラーとなった場合、Form_Loadによる画面が出る前に、エラーメッセージがポップアップされてしまう。 これらを回避したいのです。 良い方法ご存知の方がいましたら、ご教授下さいませ。 よろしくお願い致します。

  • Loadイベント中にほかのイベントを発生したくない

    VisualC# .net です。 フォームを表示する場合に コンストラクタが呼ばれその後ロードイベントで フォームのコントロールの初期設定を行っています。 (この方法がまちがっている?) ロードイベント内でコンボボックスの初期設定を行うと コンボボックスのイベントが発生してしまいます。 以下参照にて このイベントでメッセージを表示しているのですが 初期設定では出てほしくありません。 そこで、 これを防ぐためには以下のようにフラグを立てるような 方法しかないのでしょうか? それともDebugger.IsAttached のようなものが 用意されているのでしょうか public bool iload = false;     (←仮フラグを追加) private void Form1_Load(object sender, EventArgs e) { iload = true;    (←仮フラグを登録) ComboBox1.SeletedIndex = 0; iload = false;   (←仮フラグを削除) } private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (iload) return;     (←仮フラグ登録時はなにもしない) MessageBox.Show("変更しました"); }

  • VB.net(2005)でFormのLoadイベント処理について質問で

    VB.net(2005)でFormのLoadイベント処理について質問です 設定時刻として9:00とします。 formを起動した時刻が9時前ならまで何もせず。 9時以降になれば処理を開始する。 といったプログラムを作成しようと思います。 サンプル) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim settingtime As DateTime '現在時刻を設定 Dim nowtime As DateTime = System.DateTime.Now.ToShortTimeString '設定時間を9時 settingtime DateTime = DateTime.Parse("9:00").ToShortTimeString '現在時刻が9時より後のとき If nowtime < setting Then         処理A Else '現在時刻が9時より前のとき         9時まで処理Aをしない(9時になれば処理Aを開始) End If End Sub 上記のようにコーティングしましたが、 呼び出した時が9時以降なら処理Aをして以前ならElseの処理を行い抜けてしまいます。 9時になれば処理をAをしたいのです。 formを呼び出しにTimerのTickイベントで9時になれば処理Aを開始? なにかいい案があればよろしくお願いします。

  • モーダルダイアログで発生するイベント(C#)

    C#で、FormをShowDialog()、つまりモーダルダイアログで表示してからの話です。 ここで、当のForm以外をマウスでクリックしたりすると、当のFormのタイトルバーがチカチカしますよね。 このとき、当のFormにはどんなイベントが発生しているのでしょうか? 当のForm以外をクリックしたときに、「ダイアログのボタンを押して、値を選択してください」のようなメッセージを出したいと思っています。 そのために、そのイベントを使えばいいのかな、と思いました。 どうぞ、よろしくお願いします。

専門家に質問してみよう