หากผู้อ่านได้เคยใช้งาน DataGridView ใน Visual Studio.NET จะรู้ว่าการที่จะให้เลื่อนไปยัง Cell ถัดไปนั้นจะต้องกดปุ่ม Tab หรือใช้เม้าส์เลื่อนแทน และเมื่อกด Enter มันจะลงไปที่แถวถัดไปด้านล่างแทน
วิธีการแก้ปัญหา หากต้องการให้กดปุ่ม Enter แล้วเลื่อนไปยัง Cell ถัดไปโดยที่ Cursor ไม่เลื่อนลงไปที่แถวด้านล่างก็มีวิธีแนะนำดังนี้คือ การสร้าง Component ขึ้นมาใช้งานเองโดยสืบทอดมาจาก DataGridView
ต่อไปนี้เป็นขั้นตอนการสร้างครับ
- ที่ Solution Explorer คลิกขวาเลือก Add และเลือก Component... ดังรูป
- จากนั้นจะมีหน้าต่างขึ้นมาให้เราเลือก Component Class และตั้งชื่อ Class ใหม่ที่ช่อง Name เป็น ExDataGridView หรือเป็นชื่ออะไรก็ได้ครับตามต้องการ แล้วกดปุ่ม Add ดูจากรูปด้านล่างนี้
- เมื่อเพิ่ม Component Class เสร็จแล้ว จะได้หน้าต่าง Design ดังรูปด้านล่างนี้ ให้ใช้เม้าส์คลิกจุดที่อยู่ในกรอบสี่เหลี่ยมหรือ Double Click ที่บริเวณว่างๆของส่วน Design ก็ได้ จะได้หน้าต่างสำหรับการเขียน Code เพื่อสร้าง Component ต่อไป
- ต่อไปเราจะมาเขียนโปรแกรมเพื่อที่จะสร้าง DataGridView ที่มีคุณสมบัติในการใช้ปุ่ม Enter เลื่อนไปยัง Cell ถัดไปดังจะได้อธิบาย Code ด้านล่างนี้
Public Class ExDataGridView
Inherits DataGridView '***เป็นการสืบทอดคุณสมบัติทั้งหมดมาจาก DataGridView
'*** เขียนทับฟังก์ชั่น ProcessDialogKey เพื่อกำหนดให้เมื่อกดปุ่ม Enter แล้วให้ทำงานเหมือนกับการกดปุ่ม Tab
Protected Overloads Overrides Function ProcessDialogKey(ByVal keyData As Keys) As Boolean
If keyData = Keys.Enter Then
MyBase.ProcessTabKey(Keys.Tab)
Return True
End If
Return MyBase.ProcessDialogKey(keyData)
End Function
'***เขียนทับฟังก์ชั่น ProcessDataGridViewKey กรณีถ้ากด Enter แล้วให้เรียกฟังก์ชั่น ProcessDialogKey
Protected Overloads Overrides Function ProcessDataGridViewKey(ByVal e As KeyEventArgs) As Boolean
If e.KeyCode = Keys.Enter Then
MyBase.ProcessTabKey(Keys.Tab)
Return True
End If
Return MyBase.ProcessDataGridViewKey(e)
End Function
End Class
- หลังจากเขียน Code เสร็จแล้ว ก็ให้ทำการ Build Project เพื่อให้มันสร้างเป็น Component และแสดงอยู่ในส่วนของ ToolBox ด้านซ้ายของหน้าต่าง Design ดังรูปด้านล่าง
- การใช้งานก็เพียงแค่ลาก Component ที่อยู่ใน ToolBox ด้านซ้ายของหน้าต่าง Design ดังรูปก็สามารถใช้งานได้เลยครับ ซึ่งก็เหมือนกับการใช้งานทั่วไปนั่นแหละครับ
เป็นอันว่าจบขั้นตอน แค่นี้ผู้อ่านก็สามารถนำไปประยุกต์ใช้เองได้ตามชอบเลยนะครับ ส่วนท่านใดต้องการ Source File ทั้งหมดรบกวนแจ้ง e-mail ไว้ด้วยครับ จะจัดส่ง Code ไปให้
สำหรับวันนี้ขอตัวก่อนนะครับ แล้วพบกันใหม่ สวัสดีครับ