アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB2005Expressにて開発を行っています。

最小化したフォームを元に戻せなくて困っています。
どなたかご存知の方がいらっしゃいましたらご教授願います。

下記の動作を実現したいと思っています。
・Form1でボタンが押されたらForm2を表示する
・この際にForm1を最小化する
・Form2を閉じる
・この際にForm1を元に戻す(手前に表示する)

以下が作成したプログラムです。
---モジュールにて下記を宣言
Module Module1
'オブジェクトの宣言
Public f1 As New Form1
Public f2 As New Form2
End Module

---Form1でForm2を開くボタンを押した場合の処理
Private Sub Button1_Click(ByVal sender~
'Form2を表示
If f2 Is Nothing OrElse f2.IsDisposed Then
f2 = New Form2
End If
f2.Show()

'Form1を最小化する
Me.WindowState = FormWindowState.Minimized
End Sub

---Form2にて閉じるボタンを押した場合
Private Sub Button4_Click(ByVal sender~
f1.WindowState = FormWindowState.Normal
↑コレで実現できるかと思ったのですが、最小化されたままです・・・
End Sub

A 回答 (3件)

VB2005以降の場合 f1,f2などのオブジェクトは不要になりました



Form1、Form2などをインスタンスとして使えます
Global.プロジェクト名.My.Formsに Form1やForm2が格納されておりこれを検索してくれます

Form1の Button1_Clickは
Form2.Show()
WindowState = FormWindowState.Minimized
とするだけでいいようです
Disposeされていても問題なく起動します

Form2のButton4_Click側も
Form1.WindowState = FormWindowState.Normal
といった具合で動作しますよ
    • good
    • 0
この回答へのお礼

教えていただいた通り、Form1.WindowState = FormWindowState.Normal
で上手くいきました。

すごく助かりました。ありがとうございました。

お礼日時:2008/09/26 18:37

form2にform1のインスタンスを渡しておいて、form2を閉じるときにform2にあるform1インスタンスに対して画面サイズを元に戻すように処理を記述すればOK。

    • good
    • 0
この回答へのお礼

Form1.WindowState = FormWindowState.Normal
としたら上手くいきました。

丁寧に回答していただきありがとうございました。

お礼日時:2008/09/26 18:39

プロジェクトのプロパティで、


アプリケーションフレームワークをOFFにし、かつ
Module1 の Sub Main から起動するように設定していますか?
そうでなければ、画面に表示されている Form1 と、f1 がそれぞれ別のオブジェクトになっているのだと思います。

仮にそうであるなら、Module1 の f1 でオブジェクトを New するのは無駄なので、

---Module1---
Public f1 As Form1

---Form1のLoadイベント---
Module1.f1 = Me

とすれば動くと思います。
    • good
    • 0
この回答へのお礼

Form1.WindowState = FormWindowState.Normal
としたら上手くいきました。

丁寧に回答していただきありがとうございました。

お礼日時:2008/09/26 18:38

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