質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

3回答

9487閲覧

データの保持のやり方

PgBeginners

総合スコア1

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2020/06/05 05:35

前提・実現したいこと

イメージ説明
登録にチェックがついてる場合はテキストボックスに入力可能または入力した値を書き込み出来る仕様です。
イメージ説明

イメージ説明
ユーザーが未登録にチェックを付けた場合、表示上は何も入っていない状態にします。
入力した文字列(データ)は保持しといて、ユーザーが登録に戻した際に入力した文字列(データ)を戻すようにしたいです。
書き込みをした際は保持したデータを破棄する予定です。

発生している問題

データを保持する処理は初めてでしたので、単純にソースコードを書いてみました。

vbnet

1Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged 2 Dim aa As String = "" 3 '登録 4 If CType(sender, System.Windows.Forms.RadioButton).Checked = True Then 5 If RadioButton1.Checked = True Then 6 TextBox1.Text = aa 7 Else 8 '未登録 9 If RadioButton2.Checked Then 10 aa = TextBox1.Text 11 TextBox1.Text = "" 12 End If 13 End If 14 End If 15End Sub

…実現はできませんでした。
データ保持のやりい方を教えていただきたいです。
例としてテキストボックスを上げましたが、今後コントロールを増やしてリストボックス・コンボボックス・ラジオボタンにする予定なので、配列でのデータ保持のやり方も教えていただきたいです。

環境
VB.NET 2010
Windows Form

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

変数aaはローカル変数です。
RadioButton1_CheckedChanged関数が終わると消えてしまいます。
フォームのPrivateメンバ変数として用意しましょう。

投稿2020/06/05 05:53

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

PgBeginners

2020/06/05 07:55

ご回答ありがとうございます。 dim変数のところをPrivateにしたところ実現できました! ありがとうございました!
guest

0

変数のスコープ、有効期間について学習してください。
Visual Basicにおけるスコープ
Visual Basicにおける有効期間

RadioButton1_CheckedChangedの中で宣言した変数はRadioButton1_CheckedChangedの中でしか使用できません。
また、通常はRadioButton1_CheckedChangedを抜けると、その変数は無くなり次に入ってきた時に覚えているものではありません。

投稿2020/06/05 05:44

YAmaGNZ

総合スコア10251

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

PgBeginners

2020/06/05 07:56

ご回答ありがとうございます。 参考となるURLありがとうございました。 勉強します!
guest

0

イベント関数の引数のsenderには、イベント発生もとのコンポーネントが入ってますんで、こいつをRadioButtonにキャストして、Checkedを読めばチェック内容が読めます。
それで判断すればいいかと。

投稿2020/06/05 05:42

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

PgBeginners

2020/06/05 07:57

ご回答ありがとうございます。 イベント関数の引数のsenderでできるなんて知りませんでした。 勉強します!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問