DataGridViewCheckBoxColumn问题开始查看复选框是否已选中

时间:2018-08-16 16:03:56

标签: c# winforms visual-studio-2017 windows-forms-designer

所以这听起来很简单,但是对于我一生来说,我不明白为什么它不起作用(Windows Forms)。任何帮助,不胜感激。

我按照以下步骤设置了DataGridViewCheckBoxColumn;

DataGridViewCheckBoxColumn col = new DataGridViewCheckBoxColumn();
col.DataPropertyName = "Data";
col.Name = "DataName";
col.HeaderText = "Data Header";
DataGridView.Columns.Add(col);

这有效,我的网格允许用户更改选中/取消选中复选框。现在很棒,当他们按保存时,要将其保存到数据库,我有以下内容:

foreach (DataGridViewRow row in dgUsers.Rows)
{
 bool bData = (bool)row.Cells["Data"].Value;
}

要阅读复选框,我还尝试了.selected并尝试查看复选框单元格。通过以下方式:

DataGridViewCheckBoxCell cell = row.Cells["Data"] as DataGridViewCheckBoxCell;
DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)row.Cells["Data"];

但是,这些都不起作用。我只想获取布尔值是对还是错。

任何想法。

谢谢

1 个答案:

答案 0 :(得分:0)

因此,经过大量研究,我想我可能已经找到了答案。我有一个包含大量数据的datagridview,其中一个是复选框单元格,因此用户可以标记/取消标记数据。现在,因为我有一个按钮,它将循环遍历datagridview行并将更改保存到数据库。复选框可能没有完全提交值更改。因此,我们可以按如下方式使用编辑后的值:

DataGridViewCheckBoxCell.EditedFormattedValue
  

获取单元格的当前格式化值,而不管是否   单元格处于编辑模式,并且尚未提交该值

。因此,以我的示例为例:

DataGridViewCheckBoxCell cell = row.Cells["Data"] as DataGridViewCheckBoxCell;
bool bData = (bool)cell.EditedFormattedValue