VB2008、クリアボタンでクリアさせたい…
いつもお世話になります。
VBでBMI測定プログラムを作っています。
身長と体重を入力
測定ボタンを押す
"あなたは標準体重です。"等の結果メッセージが出る。
のですが、「測定」ボタンの隣に「クリア」というボタンを設置することになっています。
「クリア」を押すと入力した[身長][体重][結果]がクリアされて初期状態?に戻るらしいのですが、
それぞれの値を0にしたりするわけではないですよね。
一瞬でパッとできたりする方法を探しているのですが、いかがでしょうか。
Public Class Form1
Dim sin As Double
Dim tai As Double
Dim m As Double = 0
Dim no As Integer
Dim abim As Double
Dim bmi As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
sin = TextBox1.Text / 100
tai = TextBox2.Text
abim = tai / sin / sin
If abim < 18.5 Then
bmi = "低体重です。"
ElseIf 18.5 <= abim And abim < 25 Then
bmi = "標準重です。"
ElseIf 25 <= abim And abim < 30 Then
bmi = "肥満1度です。"
ElseIf 30 <= abim And abim < 35 Then
bmi = "肥満2度です。"
ElseIf 35 <= abim And abim < 40 Then
bmi = "肥満3度です。"
Else
bmi = "肥満4度です。"
End If
m = m + 1 'No
no = m Mod 5
If no = 1 Then
Label3.Text = m & " あなたの判定結果は"
Label9.Text = bmi
ElseIf no = 2 Then
Label4.Text = m & " あなたの判定結果は"
Label10.Text = bmi
ElseIf no = 3 Then
Label5.Text = m & " あなたの判定結果は"
Label11.Text = bmi
ElseIf no = 4 Then
Label6.Text = m & " あなたの判定結果は"
Label12.Text = bmi
ElseIf no = 0 Then
Label7.Text = m & " あなたの判定結果は"
Label13.Text = bmi
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.Text = ""
TextBox2.Text = ""
Label3.Text = ""
Label4.Text = ""
Label5.Text = ""
Label6.Text = ""
Label7.Text = ""
L
For Each c As Control In Me.Controls
c.Text = ""
Next
このようにすればMeのコントロールのテキストをすべて初期化することができますが、
Textプロパティをもっていないコントロールやコンポーネントが配置されていたりする場合にはエラーになるので、コントロール毎に処理を変えなければなりませんし、
他のコンテナに属しているコントロールやコンポーネントは初期化できません
コントロール毎に処理を追加していくとかえって見づらくなる場合があるので、
今のまま初期化でもいいと思います
どちらかというと、Textbox1などに意味あるName値を設定したほうが、見やすくなると思いますよ
お礼
ありがとうございます。 質問のときのことも考えて、名前の付け方も変えるようにします。