- PR -

モードレスでフォームを表示した時のメッセージボックスの処理

1
投稿者投稿内容
シェラ
会議室デビュー日: 2004/09/02
投稿数: 4
投稿日時: 2004-09-02 11:51
いつも拝見させて頂いております。

VB.Netで2つのフォームを使用し、
メインフォームでボタン押下時に
サブフォームをモードレスで表示をしています。
サブフォームを表示した状態で
メッセージボックスを表示し、
その後、メッセージボックスを閉じると
サブフォームも同時に閉じてしまいます。

メッセージを閉じた後もサブフォームを表示させたいのですが、
どのようにすれば実現可能なのでしょうか。

ご存知の方がおりましたら、教えていただけないでしょうか。
よろしくお願い致します。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-09-04 14:41
諸農です。

引用:

その後、メッセージボックスを閉じると
サブフォームも同時に閉じてしまいます。

メッセージを閉じた後もサブフォームを表示させたいのですが、
どのようにすれば実現可能なのでしょうか。



その現象が発生するコードをここにアップすることは可能ですか?
再現できるものを見ないと何とも言えないです。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-09-05 18:02
 原因として考えられることは、おそらく「プログラムしたこと」を順番に書き出して、よく考えてみると解決できると思います。

 プログラムは、プログラマの「意図したとおり」には動きません。プログラマが「プログラムしたとおり」に動きます。オブジェクトがどこで作られて、いつ解放されているか、そういうことを考えてみてください。
シェラ
会議室デビュー日: 2004/09/02
投稿数: 4
投稿日時: 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

よろしくお願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 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/02
投稿数: 4
投稿日時: 2004-09-08 17:33
Jubeiさん、返信ありがとうございました。

引用:

まず、申し訳ないですが、ソリューションをまたがってフォームを共有している
というのは、どのようにしているのでしょうか?


ソリューションをまたがってフォームを共有する場合には
共有する子フォームのソリューションのDLLを作成し、
親フォームのソリューションより参照の追加を行い、
別のソリューションのフォームを参照しています。


いろいろな方法で確認をしてみましたが、
現在発生している現象と同様の現象は起らないようですね。
もう少し、再現方法について詳しくご説明したかったのですが、
特殊な方法で作成しており、再現方法を記載することができません。
その為、別の方法で対応する等、
何らかの方法を考えたいと思います。
何度も回答を頂きながら大変申し訳ありません。

今後も質問させて頂くことがあるかと思いますが、
その際にはまたよろしくお願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-09-08 18:01
諸農です。

再現方法が難しいとのことですので、了解しました。
何かわかればフィードバックをお願いしますm(__)m

引用:

ソリューションをまたがってフォームを共有する場合には
共有する子フォームのソリューションのDLLを作成し、
親フォームのソリューションより参照の追加を行い、
別のソリューションのフォームを参照しています。



うむむ、ここで言われているソリューションってプロジェクトのことですよね?
IDE上で複数のソリューションって開けないでしょ?開けるのですか?

前回も書きましたがプロジェクトの参照ならもちろん知っています。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
シェラ
会議室デビュー日: 2004/09/02
投稿数: 4
投稿日時: 2004-09-08 18:54
何か分かったことがありましたら、記載します。

引用:

IDE上で複数のソリューションって開けないでしょ?開けるのですか?


IDE上で複数のソリューションは開けないですね。

引用:

前回も書きましたがプロジェクトの参照ならもちろん知っています。


同じことを記載していました。
すみません。m(_ _)m
1

スキルアップ/キャリアアップ(JOB@IT)