- PR -

Formの呼び出し・呼び出しもとの画面閉じ

1
投稿者投稿内容
のろのろ
会議室デビュー日: 2007/08/15
投稿数: 10
投稿日時: 2008-04-02 11:28
こんにちは。

VB2005を勉強中です。
開発経験がないので、初歩的な質問になります。

Form1上にボタンを配置し、押下するとForm2が表示されるコードを書いています。

今は、Form1上のボタンを押すと、Form2が表示されるようになりました。
ただ、理想の動作は、Form2が表示されると、Form1の画面は閉じるような
処理を施したいです。

自分が行いたいことを以下に簡単にまとめます。

1. Form1で、何かの値を設定(テキストボックスに入力など)
2. Form1で設定した値をForm2に渡して、Form2を表示。
3. Form2が表示されたら、Form1を閉じる。


どなたかご教授をお願いします。
質問内容がわかりにくければ、おっしゃってください。




Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2008-04-02 11:59
2. Form1の表示を次画面に切り替えて、前画面で取得した値を設定。

じゃ、ダメなの?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-04-02 12:06
場合によって Form1 のインスタンスを破棄してはならない時があります。 Form1 に戻ることがありえるなら非表示にした方が都合が良いことが多いです。 またウィザードのような遷移をイメージしているなら UserControl などコンテナを利用してそれらで切り替えた方が良いです。

さて Form1 を閉じてしまうことが前提なら、Form1 はおそらく Main Form (閉じるとアプリケーションが終了する Form) でしょうから ApplicationContext を使うことになると思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
close dance
会議室デビュー日: 2008/03/28
投稿数: 9
投稿日時: 2008-04-02 12:15
コード:
Public Class Class1
    Shared Sub Main()
        Dim f As Form1 = New Form1()
        f.ShowDialog()
        System.Windows.Forms.Application.Run()
    End Sub
End Class



フォームを表示するクラスを作成し、
Main() メソッドを定義します。
プロジェクトのプロパティで、アプリケーションの種類を
コンソールアプリケーション、スタートアップオブジェクトを
Sub Main に変更してください。
ただし、どこかで必ず Application.Exit() をコールする実装にします。
お だ
会議室デビュー日: 2008/04/02
投稿数: 14
投稿日時: 2008-04-02 21:06
引用:

コード:
Public Class Class1
    Shared Sub Main()
        Dim f As Form1 = New Form1()
        f.ShowDialog()
        System.Windows.Forms.Application.Run()
    End Sub
End Class





これだとForm1はメッセージループ外で動いてそうですが、
問題ないのでしょうか?
ApplicationContextを使うのがよいのではと思います。
のろのろ
会議室デビュー日: 2007/08/15
投稿数: 10
投稿日時: 2008-04-04 19:15
みなさま


どうもたくさんのご返信ありがとうございます!
皆様の意見を参考にして、コーディングをしてみます。

コーディング結果が出ましたら、書き込みします。
どうもありがとうございます!
1

スキルアップ/キャリアアップ(JOB@IT)