あなたの「必」の書き順を教えてください

こんにちわ。

visualstudio2005(vb.net)で開発を行っています。

MDIフォームを使ってシステムを作成しています。

親フォームの中にフォーム1を表示させそのフォーム1からボタンを押すとフォーム2が表示されるという仕様です。

希望としてはフォーム2を起動中はフォーム1は利用不可にしたい(モーダルのような感じで表示させたい)のですが、MDIではShowDialogは無理なようです。

MDIフォームでこういったことを実現するのは無理なのでしょうか?
(VisualStudioの[ツール]-[オプション]の画面を参考に見てもモーダルのフォームはMDIから外れたエリアで表示されている気がします。)

解決策や代替の手段等ありましたらおしえていただけませんでしょうか?

お忙しいところ大変申し訳ありませんがよろしくお願いいたします。

A 回答 (2件)

Form1にモーダル用のFormの変数を WithEventsで宣言しておいて


モーダルフォームのMoveイベントを捕まえて移動範囲を制限するとかでしょうか …

範囲外へ出たとき 瞬間的に表示されてしまうのが抑えられませんが
    • good
    • 0
この回答へのお礼

書き込みありがとうございます。

やはり特殊な処理を行わないと制御は無理みたいですね。
無理して本来の機能に影響が出てもこまるのであきらめることとします。
ありがとうございました。

お礼日時:2008/05/01 10:16

モーダルフォームとして表示したいフォームの MdiParentを設定したりしていませんか?



MdiParentは Nothingのままにしておいて
Dim frm as new modalForm()
if Windows.Forms.DialogResult.OK = frm.showDialog() then
  ' OK時の処理
end if

といった具合で 表示可能だと思いますが ・・・
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
MdiParentを設定しないということはMDIの親フォームから外れるということですよね?
希望としてはMDI親フォームの枠内に表示してモーダルらしきことを行いたいのです。いろいろ調べてみたのですがMODALはMDIでは使えないようですね。OWNER設定もできないみたいですし。
構想そのものが無理なのかもしれませんね。

お礼日時:2008/04/27 12:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報