Windowsフォームでダイアログを作成するには、普通にFormを作成してFormBorderStyleやMaximizeBoxやMinimizeBoxのプロパティを変更して、ダイアログの概観を持つフォームを作成します。またモーダルダイアログとして表示するには、ShowDialog();を呼び出します。
OKやキャンセルなどのいわゆるダイアログボタンは、普通にボタンを配置してDialogResultプロパティを設定し、それに合うような文字列をTextプロパティに設定します。DialogResultが設定されたボタンを押すと自動的にFormを閉じようとするので、Clickイベントハンドラでは、Close()を呼び出す記述してはいけません。
DialogResultが設定されたボタンとウィンドウクローズボタン(右上の×ボタン)を含めて、これらのボタンを押されたときに終了させないようにするには、FormClosingイベントハンドラを登録して、FormClosingEventArgsのCloseにfalseを設定します。この処理は、ShowDialog();で表示するFormに限らず、一般的なFormについても同様です。
プログラムからShowDialog();で表示したFormを閉じるには、Visibleプロパティをfalseにします。そうすると、ダイアログが非表示になり、ShowDialog();が復帰します。このときの戻り値は、FormのDialogResultプロパティに設定されているものになります。そのため、Visibleを設定するときにDialogResultを設定しておいたほうがよいでしょう。
0 件のコメント:
コメントを投稿