プロが教えるわが家の防犯対策術!

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

A 回答 (1件)

For Each c As Control In Me.Controls


  c.Text = ""
Next

このようにすればMeのコントロールのテキストをすべて初期化することができますが、
Textプロパティをもっていないコントロールやコンポーネントが配置されていたりする場合にはエラーになるので、コントロール毎に処理を変えなければなりませんし、
他のコンテナに属しているコントロールやコンポーネントは初期化できません
コントロール毎に処理を追加していくとかえって見づらくなる場合があるので、
今のまま初期化でもいいと思います

どちらかというと、Textbox1などに意味あるName値を設定したほうが、見やすくなると思いますよ
    • good
    • 0
この回答へのお礼

ありがとうございます。
質問のときのことも考えて、名前の付け方も変えるようにします。

お礼日時:2010/06/11 21:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!