WindowsフォームのMDIでモーダルなフォームを表示する方法
2018/04/11
まず結論から言うと通常のやり方では出来ません。
MDIでShowDialog
を呼び出すと例外が発生します。
なので以下のやり方でやってみました。
var form = new Form2();
form.MdiParent = MdiParent;
Enabled = false;
form.FormClosed += (_s, _e) => Enabled = true;
form.Show();
フォームを開くときに現在のフォームを無効状態にしておきます。 そして開いたフォームが閉じるときに再び有効にする。
これで擬似的にモーダルにすることができました。