- - PR -
Form1を閉じてForm2をオープンしたい
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-05-27 13:17
初めて投稿します
件名にも書きましたが、 Form1でコマンドボタンをクリックした後、 Form1をクローズしForm2をオープンする処理を考えています。 最初に次のような処理にしてみたところ Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() Dim Form1 As New Form1 Form1.ShowDialog() End Sub Form2が開かずに、いきなりプログラムが終了しました。 そこで、 Form1.ShowDialog()をForm1.Show() に変えてみましたが結果は同じでした Me.CloseをMe.Hideにした場合は 希望通り、Form1を閉じた後、Form2がオープンされます。 ただ、Closeではないので、フォームをクローズできないかと 悩んでおります。 なにか良い方法がございましたら 教えていただけますでしょうか? | ||||||||
|
投稿日時: 2005-05-27 14:02
Form2を開いてからForm1を閉じては駄目なのですか?
あるいは、Hide→Form2を開く→Closeにすれば、 見た目も1を閉じて2を開くように見えると思いますが。 | ||||||||
|
投稿日時: 2005-05-27 14:08
きっと Form1 がメインフォームなので閉じるとスレッドが終了するのでしょう。
| ||||||||
|
投稿日時: 2005-05-27 14:20
Mainメソッドを自分で作成して、Application.RunにApplicationContextを渡す。 ApplicationContextはどっかに覚えておく。 フォームを切り替えるときは、ApplicationContextのMainFormを変更してから フォームを閉じたり表示したりする(表示はShowを使う)。 とか。 ※最初からForm表示後に引数無しのApplication.Runというのもありですが。 | ||||||||
|
投稿日時: 2005-05-27 14:29
お返事ありがとうございます。
さっそくForm2を開く際にForm1を閉じようと 次のようにしたらエラーになりました。 VB6の時は、「Form1.Close」でOKだったと思ったのですが Closeの引数をどのようにすればいいのでしょうか? ヘルプで、Form.Close メソッドのあたりを読んでいますが 参考になるようなことが見つかりませんでした・・・ -------------------------- Private Sub Form2_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load Close(Form1) End Sub | ||||||||
|
投稿日時: 2005-05-27 16:56
VB6とはこのあたりまったく変わっています。 にしざきさんやなちゃさんが書かれていることをきちんと 理解する必要があります。 | ||||||||
|
投稿日時: 2005-05-27 20:16
こんにちは、じゃんぬ です。
VB6 に Close メソッドはありません。 Unload([Form のインスタンス]) です。
Close メソッドに引数はありません。 Form.Close メソッド っていうか、皆さんの投稿をご覧になってないのですか? なちゃ さんの投稿が答えそのものです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-05-28 08:23
みなさん返答ありがとうございました。
Application.RunにApplicationContextあたりについて 勉強してみます。 じゃんぬねっとさん、たしかにそうですね。 Unloadでした。失礼しました。 |
1