1

ビュー (userControl) があり、その OnLoad および OnLayout メソッドをオーバーライドしています。ビューが閉じられると、OnLayout メソッドが実行され、base.OnLayout(e) への呼び出しが OnLoad メソッドを起動します。

OnLoad が呼び出される原因と、この動作を回避するにはどうすればよいですか? よろしく。

4

2 に答える 2

2

base.OnLayout() はウィンドウを再作成するプロパティを使用するため、OnLoad が再度呼び出されます。それは良くありません。間違いなく修正する必要があります。コントロールが破棄されるときに OnLayout が呼び出される理由を調べる必要があります。OnLayout オーバーライドにブレークポイントを設定し、コール スタックを確認します。意味がわからない場合は、質問に投稿してください。

于 2010-05-24T18:13:50.267 に答える
0

Hans さん、返信ありがとうございます。

Dispose が呼び出されたため、Windows フォームのレイアウトがコントロールのレイアウトを呼び出しているようです。とにかく、回避策として、呼び出し base.OnLayout() を SuspendLayout() と ResumeLayout で囲んでいます。

よろしく。

于 2010-05-25T15:37:57.703 に答える