木曜日, 9月 10, 2020

Visual Studio Basic_19 
PictureBoxで画像表示(ソース修正)

18回目のソースを変更しました。
変更内容はBMI値の計算方法の変更と痩せている場合のアラートです。ただし、とっかんため、太っているときと痩せているときのイラストは同一になっています。修正箇所はButton3のみです。

BMIの計算式は以下に変更しました。
体重/身長の二乗
体重/身長/身長
※体重値はkg、身長値はm単位

で、実際のソースは・・・

「-----------------」は区切り線なので記述の必要はありません。
青字は自動入力部分で修正の必要はありません。
黒字が入力部分です。
赤字はコメント文なので記述の必要はありません。

-----------------
Public Class Form1
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Dim height, weight, judg, over, under As Single
        ' height, weight, judg, over, underは単精度浮動小数点型変数
        PictureBox2.Visible = False
        PictureBox3.Visible = False
        ' プログラム起動時、PictureBox2と3は非表示
        height = Val(TextBox1.Text)
        ' TextBox1の値を数値変換してheightに代入
        weight = Val(TextBox2.Text)
        ' TextBox2の値を数値変換してweightに代入
        over = 25
        ' overに代入
        ' BMI値25以上は肥満
        under = 18.5
        ' underに代入
        ' BMI値18.5未満は低体重
        judg = weight / height / height
        ' weightをheightの二乗で割る
        If judg >= over Then
            Label4.ForeColor = Color.Red
            Label4.Text = "太りすぎです"
            PictureBox1.Image = PictureBox3.Image
            PictureBox1.Visible = True
            ' もしjudgがover以上の場合は
            ' Label4の文字を12pointのMS UI Gothicにし
            ' 赤の太字で「太りすぎです」を表示
         ElseIf judg < under Then
            Label4.ForeColor = Color.Red
            Label4.Text = "痩せすぎです"
            PictureBox1.Image = PictureBox3.Image
            PictureBox1.Visible = True
            ' もしjudgがinderよりも小さい場合は
            ' Label4の文字を12pointのMS UI Gothicにし
            ' 赤の太字で「痩せすぎです」を表示
         Else
            Label4.ForeColor = Color.Blue
            Label4.Text = "標準です"
            PictureBox1.Image = PictureBox2.Image
            PictureBox1.Visible = True
        End If
    End Sub
-----------------
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        End
    End Sub
-----------------
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        TextBox1.ResetText()
        TextBox2.ResetText()
        Label4.ForeColor = Color.Empty
        Label4.ResetText()
    End Sub
End Class
-----------------

ソース記述中にエラーがなければデバッグです。

BMI値が18.5以下の場合

BMI値が18.5以上25以下未満の場合

BMI値が25以上の場合

BMI値の計算結果による判定は、あくまでも1つの目安です。

Visual Studio Basic 2019