C# Winform中DataGridView的DataGridViewCheckBoxColumn CheckBox是否选中

转载 2016年08月30日 13:15:54

转载至:http://www.cnblogs.com/xucan/archive/2010/12/05/1897025.html

下面介绍Winform中DataGridView的DataGridViewCheckBoxColumn使用方法:

 第一部分:DataGridViewCheckBoxColumn CheckBox是否选中

  在判断DataGridView中CheckBox选中列的时候,用DataGridViewRow.Cells[0].FormattedValue.ToString()=="True"语句时存在问题,当我们直接点击CheckBox时,结果显示未选中,但是如果我们在点击其他单元格时,结果显示选中。而用DataGridViewRow.Cells[0].EditedFormattedValue.ToString()=="True"语句时不管怎么样是选中的状态。

为什么会有这种结果?

  原因:就是FormattedValue是操作提交后的结果,而EditedFormattedValue是当前的结果,不管结果是否已经提交。

     所以用DataGridViewRow.Cells[0].EditedFormattedValue.ToString()=="True"判断选中比较合适 

复制代码
1 if (dgvDownloadList.Rows.Count > 0)
2 {
3    for (int i = 0; i < dgvDownloadList.Rows.Count; i++)
4    {
5        string _selectValue = dgvDownloadList.Rows[i].Cells["Column1"].EditedFormattedValue.ToString();
6        if (_selectValue == "True")
7           //如果CheckBox已选中,则在此处继续编写代码
8     }
9 
复制代码

 

DataGridViewCheckBoxColumn 设置CheckBox默认选中

   ((DataGridViewCheckBoxCell)dgvDownloadList.Rows[i].Cells["Column1"]).Value = true;

 

DataGridViewCheckBoxColumn 第一时间获取CheckBox的选中状态

  当点击或者取消datagridview的checkbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,下面就列出它的解决办法: 

  CommitEdit :将当前单元格中的更改提交到数据缓存,但不结束编辑模式  

复制代码
 1 dgvDownloadList.CurrentCellDirtyStateChanged += new EventHandler(dgvDownloadList_CurrentCellDirtyStateChanged);
 2 dgvDownloadList.CellValueChanged += new DataGridViewCellEventHandler(dgvDownloadList_CellValueChanged);
 3  
 4 void dgvDownloadList_CurrentCellDirtyStateChanged(object sender, EventArgs e)
 5 {
 6     if (dgvDownloadList.IsCurrentCellDirty)
 7     {
 8         dgvDownloadList.CommitEdit(DataGridViewDataErrorContexts.Commit);
 9     }            
10 }
11  
12 void dgvDownloadList_CellValueChanged(object sender, DataGridViewCellEventArgs e)
13 {
14     if (dgvDownloadList.Rows.Count > 0)
15     {
16         for (int i = 0; i < dgvDownloadList.Rows.Count; i++)
17         {
18             string _selectValue = dgvDownloadList.Rows[i].Cells["Column1"].EditedFormattedValue.ToString();
19             if (_selectValue == "True")
20                 //如果CheckBox已选中,则在此处继续编写代码
21         }
22      }
23 }

获取DataGridViewCheckBoxColumn选中的值

string[] str = new string[dgv常用选项.Rows.Count];

c# DataGridView 中对 DataGridViewCheckBoxColumn 的操作

 如上图所示完成功能:在DataGridView中根据对“选择”的读取,来读取“工单号”,在根据“工单号”来获取工单类,从而进行批量分派。 1.       用到了datagridview的Curr...

C# Winform中DataGridView的DataGridViewCheckBoxColumn使用方法

下面介绍Winform中DataGridView的DataGridViewCheckBoxColumn使用方法: DataGridViewCheckBoxColumn CheckBox是否选中   ...

DataGridViewCheckBoxColumn小结

1. DataGridViewCheckBoxColumn多选。 默认情况下,DataGridViewCheckBoxColumn为单选 因为复选框不是Winform下的CheckBox,只是一个显...

C# 对 DataGridViewCheckBoxColumn 操作时选中行状态更新问题

新手在学习对 DataGridViewCheckBoxColumn 操作时,会出现选中行状态没有及时更新的问题(没有打勾)! 当要保存修改过后的内容,必须将光标指向另外一行, DataGridVie...
  • wzy0754
  • wzy0754
  • 2017年02月14日 15:30
  • 699

DataGridView中DataGridViewCheckBoxCell点击选中状态的理解

DataGridViewCheckBoxCell的EditedFormattedValue、FormattedValue属性: 点击方框即可触发DataGridView的CurrentCellDi...
  • w630131
  • w630131
  • 2016年04月13日 16:34
  • 1807

C# winfrom 中取datagridview中checkbox的所有选中值

private void DataGrid1_CellContentClick(object sender, DataGridViewCellEventArgs e) { ...
  • lybwwp
  • lybwwp
  • 2016年08月10日 15:57
  • 3092

C# winfrom 中datagridview中checkbox的使用方法

方法一:  private void dgv_zy_CellContentClick(object sender, DataGridViewCellEventArgs e)  {        ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

DataGridView中添加CheckBox控件主要采用两种方法

DataGridView中添加CheckBox控件主要采用两种方法1.  通过在DataGridView的Columns中添加System.Windows.Forms.DataGridViewChec...
  • lbqhope
  • lbqhope
  • 2010年11月09日 15:36
  • 20502
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# Winform中DataGridView的DataGridViewCheckBoxColumn CheckBox是否选中
举报原因:
原因补充:

(最多只允许输入30个字)