|
2009/07/14(Tue) 17:15:22 編集(投稿者)
> C#でWindowsフォームを作るとコンストラクタはあるのに > Form1_Load はないですね > > これは Form1_Load に書くようなことはコンストラクタに > 書きなさい、ってことなのでしょうか?
そんな意図が込められたものではないと思います。 Buttonを配置したからといって、ButtonのClickイベント用のハンドラは自動作成されませんよね。 FormのLoadイベントのハンドラが自動作成されないのも同じようなものかと思います。 > たとえばデザイナで適当に並べたコントロールの位置を > Location でコードを書いて整列したいときなどは > コンストラクタか Form1_Loadか迷うのですが・・
私の場合ですが、Visual Studioで開発しているなら、Loadイベントで書く、 VSを使わずすべて手書きで書いているような場合は、 あえてLoadイベントを使う必要もないことが多いので、コンストラクタで書くことが多いかも。
> こんな場合どう考えるのか、また分けて記述する事の > 意義があれば教えていただきたいのですが
コンストラクタの中だとまだ各コントロールのウインドウハンドルが生成されていないかもしれませんので、 判断に迷うならたいていはLoadイベントで書いておいて問題ないと思いますよ。 #もちろん他の方のご指摘にあるように1度しか呼ばれない場合や何度も呼ばれる場合 #など正しく動作を把握しておく必要はあるでしょうけど
|