วันอาทิตย์ที่ 13 มกราคม พ.ศ. 2551

เปลี่ยนสี Background ใน DataGridView เมื่อเราเอาเมาส์ไปคลิ๊กที่แถวนั้น

ในการเปลี่ยนสีพื้นหลัง ( BackGround ) ของแถวที่เราคลิ๊กเลือก ใน DataGridView นั้น
ผมใช้ Events 2 ตัว คือ
1. CellMouseClick เป็น Events ที่ใช้เลือก Cell นั้นๆ
2. RowLeave เป็น Events ที่เราออกจากแถวปัจจุบัน
จุดประสงค์ ผมต้องการให้ เอาเมาส์คลิ๊กที่ Cell ใน DataGridView แล้วแถวนั้นเปลี่ยนสี BackGround ไปตามที่เราเซ็ตไว้
ก็เพื่อที่ว่าในกรณีที่งานของ User เยอะๆ หรือ จำนวนคอลัมน์ที่ DataGridView เยอะ เลื่อนไปดูคอลัมน์หลังๆ ลำบาก
ก็ลองใช้ตัวนี้เอาไปแก้ปัญหาดูครับ ( เป็นอีกวิธีนึงน่าจะช่วยได้ )
อันดับแรก ใช้ Events CellMouseClick ก่อน

Private Sub dgvMyPets_CellMouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles dgvMyPets.CellMouseClick If e.RowIndex = dgvMyPets.Rows.Count - 1 OrElse e.RowIndex = -1 Then Exit Sub With dgvMyPets .Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.LightBlue '--- เมื่อคลิ๊กไปที่ Cell นั้นๆแล้วจะทำการเปลี่ยนสี Background ของแถวนั้นให้เป็นสี LightBlue End With End Sub ต่อมาเราก็มาทำ Events ที่เวลาเราคลิ๊กที่ Cell อื่น ที่ไม่ใช่แถวนั้นแล้ว สี BackGround จากแถวที่เราเคยเลือกไว้ มันต้องกลับเป็นสีขาว

เรามาใช้ Events LeaveRow

Private Sub dgvMyPets_RowLeave(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvMyPets.RowLeave

If e.RowIndex = dgvMyPets.Rows.Count - 1 OrElse e.RowIndex = -1 Then Exit Sub

With dgvMyPets .Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.White '--- ออกจากโรว์ให้สีพื้นแถวน้นเป็นสีขาว End With

End Sub

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