2個のモニターを使うマルチディスプレーでプライマリーディスプレーで数値入力したり計算したりする操作をし、セカンダリーには客だけが見れるように計画しています。Form1をプライマリーに表示させてForm2をセカンダリーに表示するためにForm2.Move Screen.Width,0 のように配置して通常の操作は問題ないのですがメッセージボックスがセカンダリーに表示されて困っています。メッセージボックスを確実に左側(Form1上)に出るようにする方法はあるのでしょうか? よろしくお願いします。(VB6使用)
編集 削除標準のメッセージボックスでは制御がなかなか難しいこともあるので、簡単な方法としては、メッセージボックス用のダイアログボックスを作ってしまうことかもしれませんね。
編集 削除べがらぼ様、回等をありがとうございました。
ご指摘の通りダイアログボックスを作ってしまうのはあれこれ考えているより確実なのでVbYesNo, VbYesNoCancelなど数種類のスタイルに対応するものを作りました。メッセージボックスの性格上モーダルで開きたいのですがモーダルなFormが開いている時にこれを使いたい場合はどうしようかとも考えています。たまたま今回の場合はモードレスのFormばかりでしたのでとりあえずこれOKなので解決にチェックを入れました。しかし今後このFormを使い回しするとなるとモーダルなFormからこのMyMsgBoxをモーダルに開きたい場合はどうしたらよいかが今後の課題です。何かアイデアがありましたらお知恵をお貸しください。ありがとうございました。
参考リンクのみですが・・・
http://vbnet.mvps.org/index.html?code/internet/deleteurlcache.htm
SetWindowsHookExを使用して位置変更しているので、エラー処理など
慎重にしてください。
ダイアログのFormを開く前に、Me.Enabled = Falseにしてしまうというのはどうでしょうか
ダイアログのFormのUnload時にEnableをTrueに戻せばよいかと
ima様、通ってみた様、回答をいただきありがとうございました。
最初は自前のFormを準備してつくりましたがFormを開く前に、Me.Enabled = Falseにすることで解決できましたので作成した自前のFormを解放し、シンプルにすることができました。遅くなりましたがお礼まで。