thongkorn โพสต์ 2018-2-19 17:08:10

[VB.NET] การสลับสีพื้นหลัง Header ในแต่ละหลักของ DataGridView ในแบบ Run Time

http://www.g2gnet.com/webboard/images/vbnet/altercolorcolumn.png


สำหรับอันนี้ก็เป็นคำถามที่เข้ามาจากมิตรรักแฟนคลับสาวก Visual Basic ถามแอดมินผ่านมาทางเฟซบุ๊ค แอดมินก็เลยมาขอตอบให้ตรงนี้ล่ะกัน เผื่อให้คนอื่นๆเขาได้รับรู้กันบ้างครับพี่น้อง ... ที่ทำออกมาแล้วไม่ได้ผลอย่างที่ต้องการ ก็เพราะว่าข้ามรายละเอียดของการตั้งค่าบางอย่างไป ไปลองชิม เอ้ย ชมโค้ดดีกว่าแล้วคุณคงจะเข้าใจเองครับผม ... แอ่นนน แอ๊นนนน

มาดูโค้ดกันเถอะ ...
Public Class Form1

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
      DataGridView1.Columns.Add("column1", "ลำดับ")
      DataGridView1.Columns.Add("column2", "หมายเหตุ")
      DataGridView1.Columns.Add("column3", "วันที่")
      DataGridView1.Columns.Add("column4", "User")

      '// ตั้งค่า ColumnHeadersHeightSizeMode ก่อนที่จะทำการปรับความสูงของแถวได้
      DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
      DataGridView1.ColumnHeadersHeight = 36
      '// กำหนดให้ EnableHeadersVisualStyles = False เพื่อให้ยอมรับการเปลี่ยนแปลงสีพื้นหลัง
      DataGridView1.EnableHeadersVisualStyles = False
      ' ตัวอย่างการปรับ Header Style
      With DataGridView1.ColumnHeadersDefaultCellStyle
            .BackColor = Color.Navy
            .ForeColor = Color.Black
            .Font = New Font("Tahoma", 9, FontStyle.Bold)
      End With

      For iCol As Integer = 0 To DataGridView1.Columns.Count - 1
            '// คำนวณหาเลขคู่กับเลขคี่ หากเลขจำนวนเต็มใดๆหารเอาเศษ (Mod) ด้วย 2 แล้วได้คำตอบ 1 คือเลขคี่
            If iCol Mod 2 = 1 Then
                DataGridView1.Columns(iCol).HeaderCell.Style.BackColor = Color.DarkOrange
                '// หารเอาเศษด้วย 2 ได้ 0 คือเลขคู่
            Else
                DataGridView1.Columns(iCol).HeaderCell.Style.BackColor = Color.DeepSkyBlue
            End If
      Next
    End Sub
End Class

g2gsoftuser โพสต์ 2022-10-25 19:38:22

ขอบคุณครับ

jai โพสต์ 2023-4-7 16:25:20

ขอบคุณมากครับ

yusanc โพสต์ 2023-8-25 10:39:36

ขอบคุณครับ
หน้า: [1]
ดูในรูปแบบกติ: [VB.NET] การสลับสีพื้นหลัง Header ในแต่ละหลักของ DataGridView ในแบบ Run Time