Sunday, February 19, 2012

VB.Net เกี่ยวกับ sender, e , handles

เดิมจะต้องเขียน Private Sub จำนวน 9 Sub ตามจำนวน CheckBox ที่ต้องการ
ปัญหาคือโปรแกรมมันจะยาวเกินความจำเป็นจึงลองคิดดูว่ามีวิธีย่อให้มันสั้นลงไหมแล้วลองทดสอบดูพบว่าใช้ได้ผลดี
Private Sub chk_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles chk1.Click, chk2.Click, chk3.Click, chk4.Click, chk5.Click, chk6.Click, chk7.Click, chk8.Click, chk9.Click
        Dim chkX As CheckBox
        chkX = sender
        If chkX.Checked = True Then
            chkX.Checked = False
        Else
            chkX.Checked = True
        End If
        MessageBox.Show("แต่หากต้องการแก้ไขหรือเปลี่ยนแปลง กรุณาเข้าไปแก้ข้อมูลตั้งต้นใน Work Order", "Read Only Data", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub

แล้ว Handles Click มันต่างกันกับ CheckedChanged และ CheckStateChanged ยังไง
ลองทดสอบดูแล้วพบว่ามันทำตามลำดับดังนี้
CheckedChanged, CheckStateChanged และ Click ตามลำดับ

No comments:

Post a Comment