Resize, SizeChanged, Layoutイベントの違い

 

イベント説明
Resizeコントロールのサイズが変更された時に発生。
SizeChangedSizeプロパティが変更されたときに発生。
Layoutコントロールが配置し直す時に発生。

上記の説明では、イマイチ違いが解らないので、実際に発生の順序の違いを調べました。

●ユーザのマウス操作でFormサイズを変更した場合

Layoutイベント
 ↓
Resizeイベント
 ↓
SizeChangedイベント

●プログラミングでSizeプロパティを変更した場合

this.Size = new Size(300, 100);
Layoutイベント
 ↓
Resizeイベント
 ↓
SizeChangedイベント

●プログラミングでHeightプロパティを変更した場合

Form.Height += 100;
Layoutイベント
 ↓
Resizeイベント
 ↓
SizeChangedイベント

結果は、どれも同じ順序で発生することが解りました。

なお、Microsoftのドキュメントでは、「Layoutイベントを使用してカスタムレイアウトを処理すること」をお勧めしています。

厳選 Visual Studioの便利なショートカット

  エラー箇所にジャンプ 「Ctrl + Shift + F12」 ブレークポイント 設定/解除 「F9」 有効化/無効化 「Ctrl + F9」 ViEmu特有 「:ls」:バッファナンバーのリストを表示。 「:b2」:バッファ2のファイルを開く。 「:n」:次のバッファのファ...