Form.ShowDialog(owner)の引数について

.net frameworkでForm.ShowDialog(owner)を呼び出したとき、ownerに何を指定するかによる挙動の違いの説明。
また、モーダルウィンドウの親であるウィンドウと、そうでないウィンドウの挙動の差についての説明。



Form.ShowDialog(owner)のowner引数は「親フォーム」であるフォームを指定するための引数である。ownerを省略した場合はコードが実行されたフォームが「親フォーム」になる。

モーダル表示された「子フォーム」、その「親フォーム」、そのどちらでもない「その他のフォーム」はそれぞれ以下のような動きをする。
※以下の文章中の「アクティブ」というのはウインドウのタイトルバーがアクティブ色になることを指す。

・子フォーム
アプリケーションの持つフォームの中で、このフォーム以外のフォームを操作することは出来ない。
タスクバーでの選択やウィンドウのクリックによってアクティブになったとき、同時に「親フォーム」も画面前面に表示される。

・親フォーム
操作不可である。
タスクバーでの選択やウィンドウのクリックによってアクティブにされる場合、代わりに「子フォーム(モーダル表示されたフォーム)」がアクティブになる。

・その他のフォーム
操作不可である。
ウィンドウのクリックではアクティブにならないが、タスクバーでの選択によって前面に表示されアクティブにすることは出来る。ただし、アクティブになっても一切の操作を受け付けない。
アクティブになっても「親フォーム」や「子フォーム」は前面に表示されない。