フォームをロードしたときの状態に戻す への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 bz9  (中学生) 投稿日時 2011/12/31 11:25:21
Sub Main でスタートさせる設定にして、

    Shared Sub Main()
        Form1.ShowDialog()
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Static Form1 As New Form1
        Me.Dispose()
        Form1.ShowDialog()
    End Sub

というのはどうでしょうか。

ただ、使うたびにメモリ消費量が増えますので何度もやるのには向いていませんが・・・
投稿者 とくま  (社会人) 投稿日時 2011/11/14 09:24:23
> もうひとつフォームを作成して、
その部分は、もう少しコストの低いクラスで代用できるでしょうが、
結局画面を作り直すと再表示になるので、初期値に戻す処理を自分の
関数で作る方がいいですね。
…それがコントロールの数が多くて大変でもです。
InitializeComponent に自動で書かれるコードが参考になるかもしれません。
投稿者 shu  (社会人) 投稿日時 2011/11/14 07:45:21
変動するプロパティ等の初期状態をすべて保存しておいて
リセット処理でそれらの値を設定しなおす。

自動ではないと思います。
投稿者 vajar  (社会人) 投稿日時 2011/11/14 05:04:41
回答が得られないようなのであきらめます。
投稿者 viajar  (その他) 投稿日時 2011/11/6 21:17:08
VB2010で、
フォームのロード後に作成したインスタンスや変更したプロパティをすべてリセットして、
フォームをロードしたときの状態に戻すにはどうすればよいでしょうか?

もうひとつフォームを作成して、そこでDispose()とMy.Forms.フォーム名.ShowDialog(Me)を実行することによって対処はできたのですが、
それだけのためにもうひとつフォームを用意するのは無駄があるように思います。