复选框状态基于Datagridview列的单元格内容

时间:2017-08-02 08:43:31

标签: sql-server vb.net

我遇到这个问题,如何在我的datagridview第1列中的单元格内容中更改复选框状态?

例如:

我有这个datagridview有两列,第1列和第2列。

第1列 - 表示数字/整数,如1或2 和 第2列 - DataGridView CheckBoxColumn

案例是:

如果第1列中的单元格值= 1,第2列是DataGridView CheckBoxColumn,则复选框状态为“#34;已检查"

如果第1列中的单元格值= 2,第2列是DataGridView CheckBoxColumn,则复选框状态为" UnChecked"

我如何在vb.net代码中执行此操作?

3 个答案:

答案 0 :(得分:0)

您需要迭代网格的每一行,然后进行比较以设置CheckBox

的值
For Each row As DataGridViewRow in yourGrid.Rows
   If row.Columns("Column1").Value = 1 Then
      row.Columns("Column2").Value = True
   Else
      row.Columns("Column2").Value = False
   End If
Next

答案 1 :(得分:0)

您可以在单元格中使用此事件:

Public Class Form1

Private Sub Val_change(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellValidated
    Dim val As String = Me.DataGridView1.CurrentCell.Value
    If val = "1" Then
        DataGridView1.Rows(0).Cells(1).Value = True
    Else
        DataGridView1.Rows(0).Cells(1).Value = False
    End If
End Sud
End Class

答案 2 :(得分:0)

如果您使用绑定到数据网格视图的DataTable,请尝试将新表达式列添加到数据表并将其绑定到DataGridView中的复选框列。

新的表达式列可以如下所示

 Dim checkBoxColumn As DataColumn = New DataColumn
 With checkBoxColumn
     .DataType = System.Type.GetType("System.Boolean")
     .ColumnName = "CheckBoxColumn"
     .Expression = "IIF(Column1=1 ,True,False)"
 End With

 'add the new column to your dataTale
 myTable.Columns.Add(checkBoxColumn)