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
No.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
といった具合で動作しますよ
教えていただいた通り、Form1.WindowState = FormWindowState.Normal
で上手くいきました。
すごく助かりました。ありがとうございました。
No.2
- 回答日時:
form2にform1のインスタンスを渡しておいて、form2を閉じるときにform2にあるform1インスタンスに対して画面サイズを元に戻すように処理を記述すればOK。
Form1.WindowState = FormWindowState.Normal
としたら上手くいきました。
丁寧に回答していただきありがとうございました。
No.1
- 回答日時:
プロジェクトのプロパティで、
アプリケーションフレームワークをOFFにし、かつ
Module1 の Sub Main から起動するように設定していますか?
そうでなければ、画面に表示されている Form1 と、f1 がそれぞれ別のオブジェクトになっているのだと思います。
仮にそうであるなら、Module1 の f1 でオブジェクトを New するのは無駄なので、
---Module1---
Public f1 As Form1
---Form1のLoadイベント---
Module1.f1 = Me
とすれば動くと思います。
Form1.WindowState = FormWindowState.Normal
としたら上手くいきました。
丁寧に回答していただきありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オブジェクト型の変数が定義さ...
-
ボタンを押すとラベルの文字を...
-
CreateObjectとはどういう意味...
-
すべてのページにServer.Create...
-
【VC++6.0(MFC)】「Out of memo...
-
メモリリークが発生するのはど...
-
C# panel内のコントロールの使...
-
コンストラクタ内でのthisポインタ
-
既定のコンストラクタがない?
-
エディットコントロールのイベ...
-
条件によって別のクラスのイン...
-
FriendとPublicの違い。。。
-
ダイアログクラスのコントロー...
-
関数の呼び出し元の検索
-
リストコントロールをウィンド...
-
C# フォームのShow()のオーバー...
-
MFCでSDIからダイアログの呼び出し
-
EditViewクラス 文字色の変更...
-
ダイアログ表示時にチェックボ...
-
イベントにAddHandlerされてい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CreateObjectとはどういう意味...
-
オブジェクト型の変数が定義さ...
-
C# panel内のコントロールの使...
-
最小化したフォームを元に戻す
-
メモリリークが発生するのはど...
-
クラス内にWin32APIのコールバ...
-
イベントドリブンとオブジェク...
-
Visual studio c# android オブ...
-
関数で値渡しと参照渡しではど...
-
C#でのUNZIP32.DLLの利用方法が...
-
ゆかりネットで東北ずん子exを...
-
VB6では、Applicationは未定義...
-
C#でのコンパイル時のエラー
-
SetとNothingの存在意味?
-
メモリ解放について、ご教授く...
-
STLの質問です
-
C#でExcelを起動したい
-
ボタンを押すとラベルの文字を...
-
Disposeはするべきですか?
-
UMLでの「オブジェクト」と「イ...
おすすめ情報