0

私が読んだ他のSOの質問から、コンストラクターで初期メソッドを処理する代わりに、onLoadのオーバーライドを使用する方が良い方法のようです。

コードにブレークポイントを設定したときに見つけたのは、onLoadメソッドがヒットしているのに、コンストラクターがヒットしていないことです。フォームは明らかに正常に開かれているので、誰かが光を当てることができるかどうか疑問に思っています。これらが発生する順序は?

これは、カスタムロードイベントでも同じです。

編集:ばかは私のブレークポイントがヒットしなかった理由ですが、ロード時のオーバーライドがいつ呼び出されるかについてはまだ少し混乱していますか?

4

1 に答える 1

5

OnLoadメソッド/イベントは、フォームが初めて表示されるときに実行されます。

newキーワードを使用してフォームのクラスの新しいインスタンスを作成すると、コンストラクターが常に呼び出されます。

一般に、OnLoad中ではなく、コンストラクター内ですべてのフォームの初期化を行うことがベストプラクティスと見なされています。複数のコンストラクターがあり、それらすべての中でいくつかの一般的な初期化タスクを実行する場合は、それらを別のメソッドに入れて、コンストラクターから呼び出します。InitializeComponent()がコンストラクターの一部として呼び出されていることを確認してください。OnLoadは、実際には、フォームなどを再配置する必要がある場合にのみ使用する必要があります。

于 2012-12-13T13:33:48.240 に答える