Checkbox

คอนโทรล CheckBox

คอนโทรล CheckBox เป็นคอนโทรลสำหรับสร้างรายการตัวเลือก โดยผู้ใช้สามารถเลือกได้มากกว่า 1 รายการ

ปกติจะใช้สถานการณ์การเลือก CheckBox เป็นตัวกำหนดเงื่อนไขว่าจะทำอะไรหรือไม่ทำอะไร

อีเวนต์ของคอนโทรล CheckBox มีดังนี้

    • CheckedChanged เกิดเมื่อเปลี่ยนสถานการณ์การเลือก จากไม่เลือกเป็นเลือก หรือจากเลือกเป็นไม่เลือก
    • Click เกิดเมื่อคลิกที่ CheckBox ซึ่งจะส่งผลให้สถานการณ์เลือกถูกเปลี่ยนจากไม่เลือกเป็นเลือก หรือจากเลือกเป็นไม่เลือก

พร็อพเพอร์ตี้ของคอนโทรล CheckBox มีดังนี้

    • Checked เป็นการตรวจสอบว่าได้เลือก (Checked) ที่ตัวเลือกนี้หรือไม่ หากเลือกจะมีค่าเป็น True หรือกำหนดให้ตัวเลือกนั้นถูกเลือกหรือไม่เลือก
    • Text ข้อความที่อยู่บน CheckBox นั้น

การใช้คอนโทรล CheckBox นั้น เนื่องจากคอนโทรล CheckBox แต่ละส่วนที่วางบนฟอร์มนั้นจะเป็นอิสระจากกันหรือเป็นคอนโทรลคนละตัว ดังนั้น การตรวจสอบว่าตัวใดถูกเลือก จะต้องตรวจสอบทีละตัวจนครบ

เช่น

If (CheckBox1.Checked) Then

s1 = CheckBox1.Text

End If

If (CheckBox2.Checked) Then

s2 = CheckBox2.Text

End If

.

.

.

ในกรณีที่ต้องการกำหนดสถานการณ์เลือก / ไม่เลือก CheckBox ในขณะรันโปรแกรมจะต้องเขียนคำสั่งโค้ดควบคุมการเลือก โดยกำหนดให้พร็อพเพอร์ตี้ Checked เป็น True หรือ False

เช่น

If ( ) Then

CheckBox1.Checked = True

Else

CheckBox1.Checked = False

End If

หรือ กำหนดสถานะที่ Form_Load ก็ได้

CheckBox.Checked = True

สำหรับอีเวนต์ของคอนโทรล CheckBox คือ Click และ CheckedChanged สามารถพิจารณาดังนี้

อีเวนต์ Click จะเกิดเมื่อผู้ใช้คลิกตัวเลือกนั้น เปลี่ยนไปซึ่งอาจจะเกิดจากการคลิกด้วยเมาส์หรือเกิดจากการเขียนโปรแกรมควบคุมการเลือกก็ได้

อีเวนต์ CheckedChange จะเกิดเมื่อสถานการณ์การเลือกของตัวเลือกนั้นเปลี่ยนไปซึ่งอาจจะเกิดจากการคลิกด้วยเมาส์หรือเกิดจากการเขียนโปรแกรมควบคุมการเลือกก็ได้

ตัวอย่างโปรแกรม การใช้ CheckBox เพี่อเลือกรูปแบบตัวอักษร

1. ให้เพิ่ม Windows Form ใหม่เข้ามาในโปรเจ็กต์

2. นำคอนโทรลมาวางบนฟอร์ม และกำหนดพร็อพเพอร์ตี้ของคอนโทรล ดังนี้

3. สร้างโพซีเยอร์ (Sub) ChangeFontStyle () สำหรับการทดสอบรายการที่เลือก โดยหากรายการรูปแบบตัวอักษรใดถูกเลือก จะนำไปเพิ่มให้กับออบเจ็กต์ FontStyle จากนั้นนำไปสร้างออบเจ็กต์ Font และนำไปกำหนดเป็นตัวอักษรของ Label ที่แสดงตัวอย่างข้อความ

Private Sub ChangeFontStyle()

Dim fs As FontStyle

If chkBold.Checked Then

chkRegular.Checked = False

fs = fs Or FontStyle.Bold

End If

If chkItalic.Checked Then

chkRegular.Checked = False

fs = fs Or FontStyle.Italic

End If

If chkUnderline.Checked Then

chkRegular.Checked = False

fs = fs Or FontStyle.Underline

End If

If chkStrikeout.Checked Then

chkRegular.Checked = False

fs = fs Or FontStyle.Strikeout

End If

Dim f As New Font("Microsoft Sans serif", 20, fs)

lblShow.Font = f

End Sub

4. เมื่อเกิดการคลิกที่ CheckBox หรือเกิดการเปลี่ยนแปลงรายการที่เลือก ให้เรียกโพรซีเยอร์ ChangeFontStyle () ขึ้นมาทำงาน (สามารถใช้ได้ทั้งอีเวนต์ CheckChanged หรือ Click

Private Sub chkRegular_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkRegular.CheckedChanged

Dim fs As FontStyle

If chkRegular.Checked Then

chkBold.Checked = False

chkItalic.Checked = False

'chkUnderline.Checked = False

'chkStrikeout.Checked =False

chkUnderline.CheckState = CheckState.Unchecked

chkStrikeout.CheckState = CheckState.Unchecked

fs = FontStyle.Regular

Dim f As New Font("Microsoft Sans serif", 20, fs)

lblShow.Font = f

End If

End Sub

Private Sub chkBold_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkBold.CheckedChanged

ChangeFontStyle()

End Sub

Private Sub chkItalic_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkItalic.CheckedChanged

ChangeFontStyle()

End Sub

Private Sub chkStrikeout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkStrikeout.Click

ChangeFontStyle()

End Sub

Private Sub chkUnderline_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkUnderline.Click

ChangeFontStyle()

End Sub