帮助将窗口格式的复选框列添加到DataGridView

6 vb.net ado.net winforms

我试图在一个简单的窗体表单应用程序中添加一个复选框列到DataGridView.

我使用ADO.NET从数据库中提取一些数据,放入数据表,然后将datagridview数据源设置为数据表.然后我想添加一个复选框列作为第二列.到目前为止,我有这个代码似乎工作:

' Code here to connect to database
Dim da As New SqlDataAdapter(cmd)
Dim dt As New DataTable
da.Fill(dt)

MainForm.MyDataGridView.DataSource = dt

Dim ChkBox As New DataGridViewCheckBoxColumn

ChkBox.FlatStyle = FlatStyle.Standard
MainForm.MyDataGridView.Columns.Insert(1, ChkBox)
Run Code Online (Sandbox Code Playgroud)

这段代码"有效",我得到MyDataGridView,用表格中正确位置的复选框列显示数据.

但是,出于某种原因,我无法检查DataGridView中的任何复选框?我已经尝试了很多东西(例如改变列的只读状态)但无法使其工作.

有什么明显的东西让我失踪吗?

Wah*_*tar 12

通过以下方式在DataGridView的属性中添加新列:

  1. 从属性面板中选择列并双击它
  2. 然后选择" 添加... "按钮
  3. 然后将新列设置为" 未绑定列 "
  4. 给它一个名字,然后选择它的类型" DataGridViewCheckBoxColumn "
  5. 设置所需的标题,并确保 选择" 只读 " .

而已.

(如果数据库字段(在SQL Server中)的类型为"bit",则datagridview会自动将其作为复选框而不是文本框映射到datagridview.无需编码.)


小智 6

Private Sub ADD_Column()

  Dim AddColumn As New DataGridViewCheckBoxColumn

  With AddColumn
    .HeaderText = "ColumnName"
    .Name = "Column Name that will be displayed"
    .Width = 80
  End With

  dgAdmin.Columns.Insert(1, AddColumn)

End Sub
Run Code Online (Sandbox Code Playgroud)