เราจะกำหนดเหตุการณ์ของ Controls ใน DatagridView ได้อย่างไร? 😰
ก็อย่างที่ทราบกันดีแล้วนะว่าเจ้า DataGridView นี้เป็น Controls ที่ใช้แสดงผลข้อมูลต่างๆ ในรูปแบบของตารางข้อมูลซึ่งแน่นอนว่าก็ต้องที่จะทำการเพิ่ม, แก้ไข, ลบ ข้อมูลได้ ซึ่งก็แน่นอนเลยว่าในการแสดงผลนั้นก็ย่อมมีการนำ Control เข้ามาใช้งานร่วมด้วย เช่น TextBox, ComboBox แล้วหากว่าเมื่อเราแก้ไขข้อมูลใน Control พวกนี้และให้มีผลกับตัวอื่นๆ ละจะทำอย่างไงดี ?
DataGridView มันจะมี Event ตัวหนึ่งที่เราสามารถผูกเหตุการณ์ไว้ภายในได้เพื่อให้กระทำการต่อเหตุการณ์ใดที่เราต้องการ (ชนิดของ Control ใน Columns นั้นต้องถูกต้องด้วยนะ) ซึ่งก็คือ Event EditingControlShowing นั่นเอง
มาเร่ิ่มกันเลย!!
ให้ทำการออกแบบมาแบบนี้ จากนั้นก็ทำการเพิ่มข้อมูลเข้าไป (ในส่วนของ Column ที่เป็น CheckBox ให้ทำการกำหนด properties โดยให้ TrueValue = 1 และ FalseValue = 0, ในส่วนของ ComboBox ก็ให้เพิ่ม Item A,B,C เข้าไปด้วย)
การกระทำ
- เมื่อทำการแก้ไข CheckBox Column ต้องให้ได้ผลลัพท์ ColumnText02 ไม่สามารถแก้ไขค่าได้
- เมื่อทำการแก้ไขค่าใน ComboBox Column ให้ ColumnText01 แสดงค่าใน ComboBox นั่น
- ColumnText01 ต้องสามารถป้อนข้อมูลที่ไม่ใช่ตัวเลขเท่านั้น
ก่อนอื่นต้องเพิ่ม Event สำหรับการกระทำกับ DataGridViewCell ละการ ดักจับ Error เสียก่อนโดยให้ทำการใช้ Event ของ DataGridView ดังนี้
Step 02
ให้ทำการเพิ่ม Event สำหรับดำเนินการกับ Controls ต่างๆเข้าไป ดังนี้
- Event TxtEdit_Keypress ใช้ดำเนินการกับ Controls TextBox
- Event ComboBoxByproducts_SelectedIndexChanged ใช้ดำเนินการกับ Controls ComboBox
Step 03
เพิ่ม Handle สำหรับ DataGridView เข้ามาเพิ่มอีก 2 ตัว (แบ่งเป็นตัวดำเนินการกับ Control TextBox, ComboBox และตัวดำเนินการกับ CheckBox)
- DataGridView_EditingControlShowing อันนี้จะเป็นตัวดำเนินการกับ Controls 2 ตัวด้วยกันโดยจะแยกตาม Column index จากนั้นก็ทำการผูก Event สำหรับดำเนินการเข้าไป
- สำหรับเจ้า CheckBox นั้นเราต้องใช้ Event CellContentClick เข้ามาทำหน้าที่จัดการ โดยเราจะทำการอ้างอิงค่าของ True, False Value มาเป็นตัวดำเนินการ
DataGridView จะมีเหตุการณ์ (Events) ให้เล่นให้ใช้งานอยู่อีกมากมาย ซึ่งในบทความต่อไปๆ จะนำมาเล่าสู่กันฟัง หวังว่าคงเป็นประโยชน์ ต่อการไปประยุกต์ใช้งานต่อไป 😁😁
ไม่มีความคิดเห็น:
แสดงความคิดเห็น