牛、豚、鶏、どれか一つ食べられなくなるとしたら?

自フォームの閉じ方に関して

初歩的な質問で申し訳ありません。

今、Form1、Form2 という2つのフォームが存在し、From1 のあるボタンを
押した場合、Form1 自体は閉じて、Form2だけを表示させるような事をしたいと
考えています。

モーダル等の方法では、Form1 が開いたままForm2 が起動してしまうかと思います。

何か良い方法がありますでしょうか。。。

教えて下さい。

よろしくお願いします。

A 回答 (3件)

以下の順序で行います。


Form1を非表示にする。(見えないようにする)
Form2を表示する。
Form2から戻った時、Form1を表示にする。(見えるようにする)
今、Form1だとすると
this.Visible=false;
form2.ShowDialog();
this.Visible=true;
のようにします。
追伸:
今後C#の件で質問される場合は、最初にC#である旨を述べておいた方がよいかと思います。
その方が、的確な回答が寄せられるかと思います。
(C#のカテゴリがあれば、その必要はないのですが・・・・)
    • good
    • 0
この回答へのお礼

ありがとうございました。

おっしゃる通り、最初からC#である旨を伝えておく
べきでした。

参考にさせて頂きました!

お礼日時:2010/06/21 09:42

言葉足らずだったかもしれません


# 私はC#わかりませんのでCで書きます

補足に書いているのはCloseですよね
そうではなくて非表示(閉じるわけではなくて隠すだけ)での対応ではダメですか?
という意味です

それをやりたい位置の設計にも寄ると思いますが
メインダイアログで開く子Dialogに対してCloseしてしまうと
その段階でプログラムが終了してしまいます

# 補足に書かれてる状態で実際どうなったのかが書いてないので状況を掴みかねますが

VC6での確認になりますが
私のところでは最初に書いたコードで見た目の動作としての実現できています
    • good
    • 0
この回答へのお礼

ありがとうございます。
とても参考になりました!!

お礼日時:2010/06/21 09:40

親画面を非表示にする方法ではダメですか?



CDlg1dlg;
安直に書けばこんな感じ
(親ダイアログのボタンイベント)
ShowWindow(SW_HIDE);
dlg.DoModal();
ShowWindow(SW_NORMAL);

この回答への補足

C#で開発を行っていますが、親画面を非表示にする為に、
Form1 では以下のように記述してみましたがダメでした。。。

 Form2 frm2 = new Form2();
frm2.ShowDialog();
this.Close(); あるいは、  this.dispose();

Form2を表示させた後に、自画面を閉じただけですが。。。。

よろしくお願いします。

補足日時:2010/06/18 16:56
    • good
    • 0

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