プログラミング初心者で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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA(エクセル)で自動的にボタン...
-
VBA シートのボタン名を変更し...
-
フォームの再読み込み
-
コマンドボタンやイメージにマ...
-
VBAで多数のプログラムを一つの...
-
CommandButtonのCaptionを変化...
-
MouseDownとMouseMoveイベント...
-
マクロでタイムレコーダーを作...
-
VBAのボタンの位置が変わって困...
-
セルをマクロのボタンにしたい。
-
アイコンとボタンの違い
-
ユーザーフォームに別シートか...
-
ボタンの表示を改行表示したい
-
教えてボタンの作り方について
-
[VB.net] ボタン(Flat)のEnable...
-
VBA CommandButtonの文字ずれ
-
Excel VBA Application.caller...
-
C# フォームを横にずらす
-
DO~LOOP でのLOOP...
-
オプションボタンによっての表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
フォームの再読み込み
-
アイコンとボタンの違い
-
VBAのボタンの位置が変わって困...
-
閉じると「+」になり開くと「-...
-
Excel VBA Application.caller...
-
Access VBA でデータペーストを...
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
VBAでオプションボタンによって...
-
ボタンをマウスで押し続けたと...
-
[Excel VBA]コマンドボタンの入...
-
VBA IE ダウンロード ダイアロ...
-
プロシージャからイベントをコ...
-
チェックボックスで指定出来る...
-
+ボタンの名称は?
-
VBA でのボタンの移動について
おすすめ情報