FormとDialog [コントロール]
----------------------------------------------------------
(開発・実行環境)
Microsoft Visual Studio 2005 Tools for Applications
Microsoft Visual Basic 2005
----------------------------------------------------------
プロジェクトに新しい項目を追加する画面には、Windowsフォームとダイアログがありますが、
大元は同じもののようですね。
ダイアログの方は初めからDialogとして使いやすい(?) ような設定がされているようですが、
なんにしてもあのボタンをそのまま流用しにくい。。
てことで結局WindowsフォームからDialog作るんだよねw
唯一つ注意が。
今回、DialogがActiveなときにEscキーで呼び出し元に戻るように、FormのCancelButtonプロパティに、
「戻る」ボタンを設定しておいたんです(これでEscキーで画面を閉じれます) 。
これを当初の仕様と少し変えたんです。
「戻る」ボタン押下時に「戻ってよいか?」メッセージを出すことにしたので、当然Escキーでの画面Close処理は不要となり、
CancelButtonプロパティから「戻る」ボタンを外したんです。
でも。。
「戻ってよいか?」メッセージ で「いいえ」を選択しても画面が閉じてしまう!!
頑張って探してやっとわかった。
一度CancelButtonプロパティに設定したButtonコントロールは、DialogResultプロパティが勝手にCancelになってしまうみたい。
CancelButton プロパティから外してもそのまま残るため、そのボタンを押すと、Clickイベントを抜けた後に画面を閉じてしまう。。
試してないから確かなことは言えないが、AcceptButtonプロパティも多分同様の挙動を示すんだろうな。
不毛な時間を過ごすから、注意しないといけませんね。
同じことで悩んでいたので、本当に助かりました。
ありがとうございました。
by hatasho (2011-12-21 16:38)