วันพุธที่ 14 กรกฎาคม พ.ศ. 2553

การสร้าง DataGridView ที่สามารถกดปุ่ม Enter เพื่อเลื่อนไปยัง Cell ถัดไปด้วย Visual Studio.NET 2005

หากผู้อ่านได้เคยใช้งาน DataGridView ใน Visual Studio.NET จะรู้ว่าการที่จะให้เลื่อนไปยัง Cell ถัดไปนั้นจะต้องกดปุ่ม Tab หรือใช้เม้าส์เลื่อนแทน และเมื่อกด Enter มันจะลงไปที่แถวถัดไปด้านล่างแทน

วิธีการแก้ปัญหา หากต้องการให้กดปุ่ม Enter แล้วเลื่อนไปยัง Cell ถัดไปโดยที่ Cursor ไม่เลื่อนลงไปที่แถวด้านล่างก็มีวิธีแนะนำดังนี้คือ การสร้าง Component ขึ้นมาใช้งานเองโดยสืบทอดมาจาก DataGridView

ต่อไปนี้เป็นขั้นตอนการสร้างครับ

  1. ที่ Solution Explorer คลิกขวาเลือก Add และเลือก Component... ดังรูป
  2.  
  3. จากนั้นจะมีหน้าต่างขึ้นมาให้เราเลือก Component Class และตั้งชื่อ Class ใหม่ที่ช่อง Name เป็น ExDataGridView หรือเป็นชื่ออะไรก็ได้ครับตามต้องการ แล้วกดปุ่ม Add ดูจากรูปด้านล่างนี้
  4.  
  5. เมื่อเพิ่ม Component Class เสร็จแล้ว จะได้หน้าต่าง Design ดังรูปด้านล่างนี้ ให้ใช้เม้าส์คลิกจุดที่อยู่ในกรอบสี่เหลี่ยมหรือ Double Click ที่บริเวณว่างๆของส่วน Design ก็ได้ จะได้หน้าต่างสำหรับการเขียน Code เพื่อสร้าง Component ต่อไป
  6. ต่อไปเราจะมาเขียนโปรแกรมเพื่อที่จะสร้าง 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
  7. หลังจากเขียน Code เสร็จแล้ว ก็ให้ทำการ Build Project เพื่อให้มันสร้างเป็น Component และแสดงอยู่ในส่วนของ ToolBox ด้านซ้ายของหน้าต่าง Design ดังรูปด้านล่าง
  8. การใช้งานก็เพียงแค่ลาก Component ที่อยู่ใน ToolBox ด้านซ้ายของหน้าต่าง Design ดังรูปก็สามารถใช้งานได้เลยครับ ซึ่งก็เหมือนกับการใช้งานทั่วไปนั่นแหละครับ

       


เป็นอันว่าจบขั้นตอน แค่นี้ผู้อ่านก็สามารถนำไปประยุกต์ใช้เองได้ตามชอบเลยนะครับ ส่วนท่านใดต้องการ Source File ทั้งหมดรบกวนแจ้ง e-mail ไว้ด้วยครับ จะจัดส่ง Code ไปให้

สำหรับวันนี้ขอตัวก่อนนะครับ แล้วพบกันใหม่ สวัสดีครับ







ไม่มีความคิดเห็น: