- - PR -
モードレスでフォームを表示した時のメッセージボックスの処理
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-09-02 11:51
いつも拝見させて頂いております。
VB.Netで2つのフォームを使用し、 メインフォームでボタン押下時に サブフォームをモードレスで表示をしています。 サブフォームを表示した状態で メッセージボックスを表示し、 その後、メッセージボックスを閉じると サブフォームも同時に閉じてしまいます。 メッセージを閉じた後もサブフォームを表示させたいのですが、 どのようにすれば実現可能なのでしょうか。 ご存知の方がおりましたら、教えていただけないでしょうか。 よろしくお願い致します。 | ||||||||
|
投稿日時: 2004-09-04 14:41
諸農です。
その現象が発生するコードをここにアップすることは可能ですか? 再現できるものを見ないと何とも言えないです。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2004-09-05 18:02
原因として考えられることは、おそらく「プログラムしたこと」を順番に書き出して、よく考えてみると解決できると思います。
プログラムは、プログラマの「意図したとおり」には動きません。プログラマが「プログラムしたとおり」に動きます。オブジェクトがどこで作られて、いつ解放されているか、そういうことを考えてみてください。 | ||||||||
|
投稿日時: 2004-09-06 13:24
Jubeiさん、Jittaさん、ご回答ありがとうございます。
説明が不足していました。申し訳ありません。 メインフォーム、サブフォームはそれぞれ別のソリューションにあります。 同じソリューション内のフォームであれば、メッセージボックスを閉じた後も サブフォームが表示できるのですが、 別のソリューションのフォームを表示した場合、 メッセージボックスを閉じた時にフォームも閉じてしまいます。 メインフォームの処理を記載しました。 Private Sub ButtonA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonA.Click Dim frmB As New Cmn.FrmB '別ソリューションのフォーム frmB.Show() End Sub Private Sub ButtonB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonB.Click messagebox.Show("ButtonB押下") End Sub よろしくお願いします。 | ||||||||
|
投稿日時: 2004-09-07 23:01
諸農です。
遅くなってすみません。
まず、申し訳ないですが、ソリューションをまたがってフォームを共有している というのは、どのようにしているのでしょうか? 試してみようにも試し方が判らないです。 ソリューション内のプロジェクト同士で、と言う事なら判るのですが。
ここで書かれている事が、 同一のソリューション内の一つの複数のフォームを持つプロジェクト内では フォーム呼び出し後に呼び出されたフォームから呼び出したダイアログを 閉じても呼び出されたフォームが閉じられる事はないが、 同一ソリューション内に構築されている他の(クラスライブラリ)プロジェ クトのフォームを呼び出した後にそのフォームからダイアログを表示させて 閉じた場合に、呼び出されたクラスライブラリプロジェクトのフォームが 閉じられてしまう、と言う事であるなら、 VB.NET、C#で試してみましたが、そのような現象は起こりませんでした。 環境:VS2003/.NET1.1(SP1は未適用です) もう少し再現方法について説明していただけませんか。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2004-09-08 17:33
Jubeiさん、返信ありがとうございました。
ソリューションをまたがってフォームを共有する場合には 共有する子フォームのソリューションのDLLを作成し、 親フォームのソリューションより参照の追加を行い、 別のソリューションのフォームを参照しています。 いろいろな方法で確認をしてみましたが、 現在発生している現象と同様の現象は起らないようですね。 もう少し、再現方法について詳しくご説明したかったのですが、 特殊な方法で作成しており、再現方法を記載することができません。 その為、別の方法で対応する等、 何らかの方法を考えたいと思います。 何度も回答を頂きながら大変申し訳ありません。 今後も質問させて頂くことがあるかと思いますが、 その際にはまたよろしくお願いします。 | ||||||||
|
投稿日時: 2004-09-08 18:01
諸農です。
再現方法が難しいとのことですので、了解しました。 何かわかればフィードバックをお願いしますm(__)m
うむむ、ここで言われているソリューションってプロジェクトのことですよね? IDE上で複数のソリューションって開けないでしょ?開けるのですか? 前回も書きましたがプロジェクトの参照ならもちろん知っています。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2004-09-08 18:54
何か分かったことがありましたら、記載します。
IDE上で複数のソリューションは開けないですね。
同じことを記載していました。 すみません。m(_ _)m |
1