- PR -

フォーム上のコントロールについて

1
投稿者投稿内容
たか
常連さん
会議室デビュー日: 2006/07/25
投稿数: 24
投稿日時: 2006-08-17 10:30
Visual Basic2005で開発しております。
Form1からボタンを押下した際に、Form2をshowdialog()で表示するといった処理を
作成する際に、ご質問があります。

【Form1】
TextBox
Button ・・・Form2をshowdialogで開く

【Form2】
TextBox
Button ・・・Form2をclose

Form1上でテキストボックスの値が1だったらForm2上のテキストボックスの
バックカラーを赤にするといった処理をした場合
1回目にForm1のテキストボックスの値を1でForm2上では赤で塗られますが
Form2を閉じた後にForm1の値を1以外に変更してForm2を表示しても赤になってしまいます。
Form2上のコントロールはcloseしても初期化といいますか、初期値に戻らないのでしょうか?

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-17 10:40
引用:

たかさんの書き込み (2006-08-17 10:30) より:

Form1上でテキストボックスの値が1だったらForm2上のテキストボックスのバックカラーを赤にするといった処理をした場合1回目にForm1のテキストボックスの値を1でForm2上では赤で塗られますがForm2を閉じた後にForm1の値を1以外に変更してForm2を表示しても赤になってしまいます。


同じインスタンスだからでしょう。
同一インスタンスを使うのであれば、元に戻す分岐も必要です。
Form2TextBox.Color = SystemColors.Window

引用:

Form2上のコントロールはcloseしても初期化といいますか、初期値に戻らないのでしょうか?


Close メソッド、Dispose メソッドは、インスタンスの初期化にはあたりません。
新しいインスタンスでの初期化がそれにあたります。
frm2 = New Form2()

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
たか
常連さん
会議室デビュー日: 2006/07/25
投稿数: 24
投稿日時: 2006-08-17 15:46
こんにちは。
ご回答ありがとうございます。

Form2を閉じる際に、テキストボックスをresetBackcolorメソッドを実行することにより
処理するように対処してみました。
1

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