プログラミング初心者でVB.NET2003使用です。
検索したところ、それらしいものがあったのでチャレンジしましたがダメだった(ちょっと違う?)ので質問させていただきます。
http://oshiete1.goo.ne.jp/qa1757174.html
《やりたい事》
Form1に配置したボタン1をクリックするとForm1を閉じてForm2を表示
Form2に配置したボタンAをクリックするとForm2を閉じてForm1を表示する。
これをやりたいのですが、なかなかうまく行きません。
ボタン1をクリックしてForm1を閉じないでForm2をShowかShowDialogでモードレス表示
ボタンAをクリックしてForm2をCloseさせてForm1を表示させる事(元々閉じていないので)は出来ます。
可能ならばどちらかを必ず閉じる方法でやりたいと思います。
可能でしょうか?
解決策やヒント、良いサイトがありましたら回答をお願いします。
No.2ベストアンサー
- 回答日時:
Sub Mainでやるのは #1と同じですが オブジェクト『フォーム』の管理をModule1でやってみてはいかがですか
Module1に
Dim oForm1 as Form1
Dim oForm2 as Form2
Sub Main
' Form1を表示
oForm1 = new Form1
oForm1.Show()
Do While TRUE
if oForm1.IsDisposed then
' Form1が閉じられた場合
if oForm2 is Nothing then
' Form2が一度も表示されなかった場合
Exit Sub
else if oForm2.IsDisposed then
' Form2が1回以上表示された場合
Exit Sub
end if
end if
Application.DoEvents()
Loop
End Sub
フォーム1上のボタンイベント
if oForm2 is Notrhing OrElse oForm2.isDisposed then
oForm2 = new Form2
end if
oForm2.Show()
me.Close()
フォーム2上のボタンイベント
if oForm1 is Notrhing OrElse oForm1.isDisposed then
oForm1 = new Form1
end if
oForm1.Show()
me.Close()
といった具合で …
回答ありがとうございます。
上から読んで流れが理解できたので、今スグにでも使えそうです。
1つの方法として試してみたいと思います。
No.1
- 回答日時:
モジュールから実行開始するのはどうでしょうか?
まず、プロジェクト->[プロジェクト名]のプロパティ
の、スタートアップの設定 で「sub Main」を選ぶ。
ファイル->新しい項目の追加 で、モジュールを追加
Module Module1
Sub main()
Dim f1 As New Form1
f1.Show()
Do
Application.DoEvents()
Loop
End Sub
End Module
とする。
form1のButton1クリックを
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim f2 As New Form2
f2.Show()
Me.Close()
End Sub
とする。
form1のButtonAクリックを
Private Sub ButtonA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonA.Click
Dim f1 As New Form1
f1.Show()
Me.Close()
End Sub
とする。
こんなのではどうでしょうか?
ただし、このままでは終了できないので、form1にbutton2を作って、
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Application.Exit()
End
End Sub
とかにして、終了するようにしてあげる。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Visual Basic(VBA) Edge操作のアプリが例外発生に 1 2023/03/12 21:22
- その他(Microsoft Office) windows10で作業を終了する際の「保存しますか はい いいえ」を表示させずに自動で保存する方法 6 2023/03/15 11:29
- その他(動画サービス) Tver アンケートに回答しても視聴できない(何度もアンケート画面が開く) 1 2023/01/13 21:47
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
セルをマクロのボタンにしたい。
-
フォームの再読み込み
-
Access VBA でデータペーストを...
-
C#で動的に作ったtextboxを消す。
-
閉じると「+」になり開くと「-...
-
Excel VBA Application.caller...
-
VBA CommandButtonの文字ずれ
-
VB6コントロール配列をパラメー...
-
[Excel VBA]コマンドボタンの入...
-
VBAでオプションボタンによって...
-
VB.NETでマウスクリックイベン...
-
3つのオプションボタンの場所...
-
コマンドボタンやイメージにマ...
-
ボタン上にビットマップ、アイ...
-
VBAのボタンの位置が変わって困...
-
TextBoxでEnterキーを押すと、...
-
フォームから別のフォームを呼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
Excel VBA Application.caller...
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
プロシージャからイベントをコ...
-
他のアプリケーションとの連携
-
閉じると「+」になり開くと「-...
-
C#で動的に作ったtextboxを消す。
-
ボタンをマウスで押し続けたと...
-
VBA でのボタンの移動について
-
CommandButtonのCaptionを変化...
-
ボタン
-
TextBoxでEnterキーを押すと、...
-
VB.net でトグルボタンを実現し...
おすすめ情報