DOBON.NET DOBON.NETプログラミング掲示板過去ログ

フォームを閉じる祭、フォーム上のラベルなのどの値の保存

環境/言語:[WindowsXP]
分類:[.NET]

フォーム上のラベルやtextboxに値を入力し、その後フォームを閉じ、
またフォームを開いた祭に先ほど入力した値を残すようにするにはどうしたらよいのでしょうか?
■No12441に返信(ちんすこうさんの記事)
> フォーム上のラベルやtextboxに値を入力し、その後フォームを閉じ、
> またフォームを開いた祭に先ほど入力した値を残すようにするにはどうしたらよいのでしょうか?
>

閉じるときに、Form.Close()ではなく、Form.hide()を使うのはどうでしょう。
> 閉じるときに、Form.Close()ではなく、Form.hide()を使うのはどうでしょう。
試してみましたが、フォームを開き直すとやはり値が初期値にもどってしまいます・・・
お世話になります。

■No12443に返信(ちんすこうさんの記事)
> 試してみましたが、フォームを開き直すとやはり値が初期値にもどってしまいます・・・

Formの変数をどういったスコープで宣言されていますか?
HideしてからのFormの変数の内容を確認してみてはいかがでしょうか。

とりあえず、私が試した以下の方法ではダイアログ表示した画面の
テキストボックスの値は残っていました。

■親画面(ボタン2個の画面)
Private m_Form2 As Form2

  '画面を最初に表示するボタン
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.m_Form2 = New Form2
Me.m_Form2.ShowDialog(Me)
End Sub
  
  '画面を2回目に表示するボタン
Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.m_Form2.ShowDialog(Me)
End Sub

■ダイアログ画面(テキストボックス1個とボタン1個の画面)
  'ボタンをクリックしたら、Hideする。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Hide()
End Sub
お返事ありがとうございます!
あの、そのフォームを表示するボタンをどうにかひとつにして、
なおかつ開かれるフォームのラベルなどの値が残されるようなことは無理でしょうか?
すみません、何度も・・・
すみません、先ほど違う質問で投稿した祭の名前になってしまいました・・・
>   '画面を最初に表示するボタン
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
> Me.m_Form2 = New Form2
> Me.m_Form2.ShowDialog(Me)
> End Sub
Me.m_Form2 = New Form2をドコに書くかが鍵です。このままだと、2回Newされてしまうので。。。
むづかしいですね〜
どなたかわかるかたいらっしゃいませんか〜?
■No12450に返信(Blueさんの記事)
> Me.m_Form2 = New Form2をドコに書くかが鍵です。このままだと、2回Newされてしまうので。。。

すみません、これは実験用の仮だったので、ボタン押下時にnewしました(^_^;

■No12452に返信(ちんすこうさんの記事)
> むづかしいですね〜
> どなたかわかるかたいらっしゃいませんか〜?

これは要件によると思いますよ。
> これは要件によると思いますよ。
どうゆうことでしょうか?
閉じてまた開いたときに(同じボタンで開く)閉じる前のラベルやテキストボックスの値が残っていればいいのですが・・・
わかるかたおねがいいたします。
おはようございます。

■No12457に返信(ちんすこうさんの記事)
>>これは要件によると思いますよ。
> どうゆうことでしょうか?
> 閉じてまた開いたときに(同じボタンで開く)閉じる前のラベルやテキストボックスの値が残っていればいいのですが・・・
> わかるかたおねがいいたします。

では, ■No.12446の例で言うと,
Me.m_Form2 = New Form2
を親画面のNew・Form_Load等でやってみて下さい。
そして,親画面のButton1とButton1_Clickは消してみて下さい。
> では, ■No.12446の例で言うと,
> Me.m_Form2 = New Form2
> を親画面のNew・Form_Load等でやってみて下さい。
> そして,親画面のButton1とButton1_Clickは消してみて下さい。
ご親切なご回答ありがとうございます。ためしてみますね。
あと、私、名前をかえて、ほかの質問もこの掲示板上でしてしまいました・・・。
なおこ(・∀・)さんにも、いろいろとご迷惑かけてしまったかと思います。
本当にすみません。
なおこ(・∀・)さん、できました〜
ご親切にありがとうございます。またよろしくお願いいたします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板