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