|
มีตัวอย่างอยู่ที่เรื่อง [VB.NET] การสร้างจดหมายเวียน หรือ Mail Merge ด้วยของฟรี Syncfusion แล้วครับ ...
หรือใช้ฟังค์ชั่น CBool ในการแปลงตัวเลขจำนวนเต็มให้เป็น TRUE/FALSE หรือ Checked/UnChecked ... จับลาก DataGridView มาวางไว้บนฟอร์ม แก้ชื่อให้เป็น dgvData เท่านั้นพอ เพราะที่เหลือจะใช้โค้ดทั้งหมดครับ
- Public Class frmDataGridViewCheckBox
- Private Sub frmDataGridViewCheckBox_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- Call SetupDGVData(dgvData)
- Call FillDataSample()
- End Sub
- Private Function FillDataSample() As DataTable
- FillDataSample = Nothing
- Try
- Dim tbl As New DataTable
- tbl.Columns.Add("ProductPK", GetType(Integer))
- tbl.Columns.Add("ProductName", GetType(String))
- tbl.Columns.Add("chkStock", GetType(Boolean))
- '// กำหนด 0 = Unchecked, 1 = Checked
- '// หากอยากได้กลับกันก็ใช้ Not (CBool(1))
- Dim row As String() = New String() {"1", "Product 1", CBool(1)}
- dgvData.Rows.Add(row)
- row = New String() {"2", "Product 2", CBool(0)}
- dgvData.Rows.Add(row)
- row = New String() {"3", "Product 3", CBool(1)}
- dgvData.Rows.Add(row)
- row = New String() {"4", "Product 4", Not (CBool(1))}
- dgvData.Rows.Add(row)
- Return tbl
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- End Function
- '// เหตุการณ์ในการคลิ๊กเมาส์ลงในแต่ละเซลล์ของหลักที่ 3 (Index = 2)
- Private Sub dgvData_CellContentClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvData.CellContentClick
- '// Column Index = 2
- If dgvData.Columns(e.ColumnIndex).Name = "chkStock" Then
- Dim isChecked As Boolean = dgvData.Rows(e.RowIndex).Cells(e.ColumnIndex).Value
- If isChecked = False Then
- dgvData.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = True
- Else
- dgvData.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = False
- End If
- End If
- End Sub
- ' / --------------------------------------------------------------------------------
- '// Initialize DataGridView @Run Time
- Private Sub SetupDGVData(ByRef DGV As DataGridView)
- With dgvData
- .RowHeadersVisible = False
- .AllowUserToAddRows = False
- .AllowUserToDeleteRows = False
- .AllowUserToResizeRows = False
- .MultiSelect = False
- .SelectionMode = DataGridViewSelectionMode.FullRowSelect
- .ReadOnly = True
- .Font = New Font("Tahoma", 9)
- ' Columns Specified
- .Columns.Add("ProductPK", "ProductPK")
- .Columns.Add("ProductName", "Product Name")
- '// Select Print.
- Dim chkStock As New DataGridViewCheckBoxColumn
- .Columns.Add(chkStock)
- chkStock.HeaderText = "In Stock"
- chkStock.Name = "chkStock"
- With .Columns("chkStock")
- .HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
- .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
- End With
- ' Autosize Column
- .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
- '// Even-Odd Color
- .AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue
- ' Adjust Header Styles
- With .ColumnHeadersDefaultCellStyle
- .BackColor = Color.Navy
- .ForeColor = Color.Black ' Color.White
- .Font = New Font("Tahoma", 9, FontStyle.Bold)
- End With
- End With
- End Sub
- End Class
คัดลอกไปที่คลิปบอร์ด
|
-
|