水曜日, 9月 09, 2020

Visual Studio Basic_18 
PictureBoxで画像表示と切り替え

BMI判定の簡単なプログラムで、PictureBoxで画像を表示し、予め隠してある画像と差し替えてみます。

VS Basicを起動したら[新しいプロジェクトの作成]にて新規プログラム作成モードに入ります。最初にTextBox2つ、Button3つ、Label5つ、PictureBox3つを配置します。

プロパティーにて文字やパーツのサイズを調整して上の様なレイアウトとしました。次にソースです。TextBox1、2とLabel4の文字サイズは12ポイントとしています。

次にPictureBox2と3に画像を配置する手順は・・・

プロパティーの表示をクリックしてローカルリソースから指定します。ここではPictureBox2と3にそれぞれ指定しました。なお、指定直後はサイズが合致していないので左上の一部分しか表示されません。画像を最初に設定しないPictureBox1も含めて全てのPictureBoxは、プロパティーの動作のSizeModeにてStretchImageを指定します。

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

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

-----------------
Public Class Form1
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Dim height, weight, standard As Single
   ' height, weight, standardは単精度浮動小数点型変数
        PictureBox2.Visible = False
        PictureBox3.Visible = False
   ' プログラム起動時、PictureBox2と3は非表示
        height = Val(TextBox1.Text)
   ' TextBox1の値を数値変換してheightに代入
        weight = Val(TextBox2.Text)
   ' TextBox2の値を数値変換してweightに代入
        standard = (height - 100) * 0.9
   ' heightから100を引いて0.9倍した値をstandardに代入
        If weight >= standard * 1.1 Then
            Label4.ForeColor = Color.Red
            Label4.Font = New Font("MS UI Gothic", 12, FontStyle.Bold)
            Label4.Text = "太りすぎです"
            PictureBox1.Image = PictureBox3.Image
            PictureBox1.Visible = True
   ' もしweightがstandardを1.1倍した値以上であれば
   ' Label4の文字を12pointのMS UI Gothicにし
   ' 赤の太字で「太りすぎです」を表示
        Else
            Label4.ForeColor = Color.Blue
            Label4.Font = New Font("MS UI Gothic", 12, FontStyle.Bold)
            Label4.Text = "標準です"
            PictureBox1.Image = PictureBox2.Image
            PictureBox1.Visible = True
   ' それ以外ならば
   ' Label4の文字を12pointのMS UI Gothicにし
   ' 青の太字で「標準です」を表示
        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()
        PictureBox1.Image = Nothing
   ' TextBox1と2、Label4、PictureBox1をリセット
    End Sub
End Class
-----------------

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

起動時にPictureBox2と3は非表示です。最初に身長を入力。

続けて体重を入力すれば太り過ぎか標準かを表示します。

ちなみに、ここで痛恨のミス・・・。痩せすぎの処理を忘れていました。

Visual Studio Basic 2019