C# Winform中DataGridView的DataGridViewCheckBoxColumn使用方法

下面介绍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"判断选中比较合适

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

DataGridViewCheckBoxColumn 设置CheckBox默认选中

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

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

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

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

dgvDownloadList.CurrentCellDirtyStateChanged += new EventHandler(dgvDownloadList_CurrentCellDirtyStateChanged);
dgvDownloadList.CellValueChanged += new DataGridViewCellEventHandler(dgvDownloadList_CellValueChanged);

void dgvDownloadList_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
    if (dgvDownloadList.IsCurrentCellDirty)
    {
        dgvDownloadList.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}

void dgvDownloadList_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    if (dgvDownloadList.Rows.Count > 0)
    {
        for (int i = 0; i < dgvDownloadList.Rows.Count; i++)
        {
            string _selectValue = dgvDownloadList.Rows[i].Cells["Column1"].EditedFormattedValue.ToString();
            if (_selectValue == "True")
                //如果CheckBox已选中,则在此处继续编写代码
        }
     }
}

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

时间: 2024-10-26 02:26:24

C# Winform中DataGridView的DataGridViewCheckBoxColumn使用方法的相关文章

C# Winform中DataGridView的DataGridViewCheckBoxColumn CheckBox选中判断

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

winform中DataGridView使用DataGridViewCheckBoxColumn实现RadioBox单选功能

private void dgvMaterial_CellContentClick(object sender, DataGridViewCellEventArgs e) { for (int i = 0; i < dgvMaterial.Rows.Count; i++) { DataGridViewCheckBoxCell ck = dgvMaterial.Rows[i].Cells[0] as DataGridViewCheckBoxCell; if (i != e.RowIndex) {

Winform中打开网页页面的方法

1.首先比较简单的我们知道有类似的方法如下 System.Diagnostics.Process.Start("http://www.baidu.com"); 2.比较灵活一点,可以定义窗口大小,我们要实现网页中脚本打开页面的方法,即window.open 那么,我们必然会想,如何调用页面的脚本呢?其实可以利用WebBrowser来实现 //连接 string url ="http://www.baidu.com"; //定义脚本 string script =@&

转载:WinForm中播放声音的三种方法

转载:WinForm中播放声音的三种方法 金刚 winForm 播放声音 本文是转载的文章.原文出处:http://blog.csdn.net/jijunwu/article/details/4753094 声音文件folder.wav放置在bin目录下debug下 1.通过API调用 using System.Runtime.InteropServices; [DllImport("winmm.dll")] public static extern bool PlaySound(st

winform中DataGridView实现分页功能

http://liyaguang20111105.blog.163.com/blog/static/19929420220146283255809/ 在winform的设计中,要实现对DataGridView控件的分页功能,需要两个控件:BindingSource.BindingNavigator,根据需求可对BindingNavigator进行自由的扩展,下图的示例则是根据一般需求对分页功能的实现.红色区域是对BindingNavigator控件扩展后的效果. 具体实现过程 : //窗体构造方

AutoGenerateColumns属性对WinForm中数据集AcceptChanges和Merge方法执行时间的影响

WinForm窗口中有一个DataGridView控件,用来显示数据源(DataTable)中的数据,数据源大概有60个字段. 当数据源中的记录数不多,比如几条.十几条记录时,执行AcceptChanges和Merge方法看不出有什么性能问题. 但是当数据源中的数据记录数达到1000条的时候,执行AcceptChanges和Merge两个方法所要耗费的时间明显变长,达到7.8秒才能完成,这个时间甚至比网络数据传输加上数据库更新所用的时间之和还要长! 经过一番摸索之后,发现在为DataGridVi

Winform 中DataGridView控件添加行标题

有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) 1 /// <summary> 2 /// 行状态更改时发生 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 pri

C#winform中datagridview导出Excel

只需要传入datagridview的name即可. 1 //导出Excel()方法 2 public void ToExcel(DataGridView dataGridView) 3 { 4 //实例化一个Excel.Application对象 5 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); 6 7 if (excel == null)

winform中DataGridView添加ComboBox的最终解决方案(点击ComboBox默认显示当前行的内容)

第一: 数据绑定ComBoBox控件 先在窗体设计时拖一个ComBoBox控件,然后在里面的ITEMS设好你要下拉项,或者从数据库中的表绑定,这个估计都会. 第二: // 将下拉列表框加入到DataGridView控件中,这句放在绑定DataGridView之后写. 在窗体的Load方法中加入:g_DataGridView.Controls.Add(g_ComBoBox);也就是把ComBoBox控件添加到DataGridView控件中第三: 在DataGridView控件的CurrentCel