メッセージボックスの位置指定

解決


まークン  2007-12-19 19:39:00  No: 138458  IP: 192.*.*.*

2個のモニターを使うマルチディスプレーでプライマリーディスプレーで数値入力したり計算したりする操作をし、セカンダリーには客だけが見れるように計画しています。Form1をプライマリーに表示させてForm2をセカンダリーに表示するためにForm2.Move Screen.Width,0 のように配置して通常の操作は問題ないのですがメッセージボックスがセカンダリーに表示されて困っています。メッセージボックスを確実に左側(Form1上)に出るようにする方法はあるのでしょうか?  よろしくお願いします。(VB6使用)

編集 削除
ぺがらぼ  URL  2007-12-20 12:51:14  No: 138459  IP: 192.*.*.*

標準のメッセージボックスでは制御がなかなか難しいこともあるので、簡単な方法としては、メッセージボックス用のダイアログボックスを作ってしまうことかもしれませんね。

編集 削除
まークン  2007-12-20 13:23:41  No: 138460  IP: 192.*.*.*

べがらぼ様、回等をありがとうございました。
ご指摘の通りダイアログボックスを作ってしまうのはあれこれ考えているより確実なのでVbYesNo, VbYesNoCancelなど数種類のスタイルに対応するものを作りました。メッセージボックスの性格上モーダルで開きたいのですがモーダルなFormが開いている時にこれを使いたい場合はどうしようかとも考えています。たまたま今回の場合はモードレスのFormばかりでしたのでとりあえずこれOKなので解決にチェックを入れました。しかし今後このFormを使い回しするとなるとモーダルなFormからこのMyMsgBoxをモーダルに開きたい場合はどうしたらよいかが今後の課題です。何かアイデアがありましたらお知恵をお貸しください。ありがとうございました。

編集 削除
ima  2007-12-23 21:19:29  No: 138461  IP: 192.*.*.*

参考リンクのみですが・・・

http://vbnet.mvps.org/index.html?code/internet/deleteurlcache.htm

SetWindowsHookExを使用して位置変更しているので、エラー処理など
慎重にしてください。

編集 削除
通ってみた  2007-12-23 23:01:17  No: 138462  IP: 192.*.*.*

ダイアログのFormを開く前に、Me.Enabled = Falseにしてしまうというのはどうでしょうか

ダイアログのFormのUnload時にEnableをTrueに戻せばよいかと

編集 削除
まークン  2008-01-11 11:58:33  No: 138463  IP: 192.*.*.*

ima様、通ってみた様、回答をいただきありがとうございました。
最初は自前のFormを準備してつくりましたがFormを開く前に、Me.Enabled = Falseにすることで解決できましたので作成した自前のFormを解放し、シンプルにすることができました。遅くなりましたがお礼まで。

編集 削除