DataGridView 动态绑定 CheckBox

下面演示如何在 DataGridView 中动态绑定 CheckBox:

public class Test
{
    /// <summary>
    /// 构造器
    /// </summary>
    public Test()
    {
        InitializeComponent();
        //生成全选checkbox
        GenerateCheckbox();
    }/// <summary>
    /// 全选按钮的选择事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void checkboxAll_CheckedChanged(object sender, EventArgs e)
    {
        foreach (DataGridViewRow dr in dataGridView1.Rows)
        {
            dr.Cells[0].Value = ((CheckBox)dataGridView1.Controls.Find("checkboxAll", true)[0]).Checked;
        }
    }

    /// <summary>
    /// 生成全选Checkbox
    /// </summary>
    private void GenerateCheckbox()
    {
        //检查 dataGridView1 中是否至少绑定了一列
        if (string.IsNullOrEmpty(dataGridView1.Columns[0].Name))
            return;

        //DataGridView 中专门用来显示 Checkbox 控件的列对象;dataGridView1 中添加此对象后,绑定数据时就会自动为每行创建一个新的 CheckBox 控件
        DataGridViewCheckBoxColumn gridViewCheckBoxCol = new DataGridViewCheckBoxColumn
        {
            Width = 50,
            HeaderText = "",
            DefaultCellStyle =
            {
                Alignment = DataGridViewContentAlignment.MiddleCenter
            },
            ReadOnly = false //若为 true 则无法选择 CheckBox
        };

        //把 dataGridView1 的第一列设置成 CheckBox 格式的列
        dataGridView1.Columns.Insert(0, gridViewCheckBoxCol);

        //获取 dataGridView1 中表示单元格显示区域的矩形,通过矩形的位置来设置 CheckBox 的相对位置
        Rectangle rectangle = dataGridView1.GetCellDisplayRectangle(0, -1, true);
        rectangle.X = rectangle.Location.X + rectangle.Width + 20;
        rectangle.Y = rectangle.Location.Y + rectangle.Height + 10;

        //新建一个用于“全选”的 CheckBox 对象 checkboxAll
        CheckBox chkOfAll = new CheckBox();
        chkOfAll.Name = "checkboxAll";
        chkOfAll.Size = new Size(18, 18);
        chkOfAll.Location = rectangle.Location;

        //为 checkboxAll 绑定全选事件
        chkOfAll.CheckedChanged += new EventHandler(checkboxAll_CheckedChanged);

        //把 checkboxAll 添加到 dataGridView1 中
        dataGridView1.Controls.Add(chkOfAll);
    }
}
时间: 2024-10-29 00:39:18

DataGridView 动态绑定 CheckBox的相关文章

winfrom 中datagridview中checkbox的使用方法

private void dgdv_skjs_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex != -1) { DataGridViewCheckBoxCell checkCell_rxwk = (DataGridViewCheckBoxCell)dgdv_skjs.Rows[e.RowIndex].Cells["rxwk"]; DataGridViewCheckBoxCell

Datagridview 添加checkbox列,并判断Datagridview 中的checkbox列是否被选中

Solution1://In Fill DataGridViewEvent : DataGridViewCheckBoxColumn ChCol = new DataGridViewCheckBoxColumn(); ChCol.Name = "CheckBoxRow"; ChCol.HeaderText = "CheckboxSelection"; ChCol.Width = 50; ChCol.TrueValue = "1"; ChCol.F

关于datagridview中checkbox列在选中行的情况下无法操作值

这几天做项目的时候碰到了个小问题,在datagridview中实现对checkbox列的全选和反选功能.代码如下 //全选 if (dataGridView1.Rows.Count > 0) foreach (DataGridViewRow dgvr in dataGridView1.Rows) { (dgvr.Cells["checkbox列名称"] as DataGridViewCheckBoxCell).Value = true; } //反选 if(dataGridVie

【原创】datagridview动态绑定contextmenustrip,并复制单元格数据

public class DGVCopy    {        public DataGridView DataGridViewCopy { get; set; }        public int X { get; set; }        public int Y { get; set; }        public void CopyData()        {            DataGridViewCopy.CellMouseClick += new DataGridV

C# Windows DataGridView 判断CheckBox 选取的方法

单行选中 foreach (DataGridViewRow dr in this.dataGridView1.Rows)            {                try                {                    //DataGridViewCheckBoxCell cbx = (DataGridViewCheckBoxCell)dr.Cells[0];                    //if ((bool)cbx.FormattedValue

DataGridView 中添加CheckBox和常用处理方式 .

DataGridView 中添加CheckBox和常用处理方式 文章1 转载:http://blog.csdn.net/pinkey1987/article/details/5267934 DataGridView中添加CheckBox控件主要采用两种方法 1.  通过在DataGridView的Columns中添加System.Windows.Forms.DataGridViewCheckBoxColumn类型的列.并可以设置该列相关的属性信息. 2. 在程序代码中直接添加相应的代码 Syst

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

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

datagridview复选框的运用

最近做项目,一直在用datagridview,而最多的就是datagridview中的复选框,也就是DataGridViewCheckBoxColumn属性,下边就是总结的使用方法. 第一点: DataGridViewCheckBoxColumn CheckBox是否选中 在判断DataGridView中CheckBox选中列的时候,用 DataGridViewRow.Cells[0].FormattedValue.ToString()=="True"语句时存在问题,当我们直接点 击C

DataGridView控件用法一:数据绑定

使用DataGridView控件,可以显示和编辑来自多种不同类型的数据源的表格数据. 将数据绑定到DataGridView控件非常简单和直观,在大多数情况下,只需设置DataSource属性即可.在绑定到包含多个列表或表的数据源时,只需将DataMember属性设置为指定要绑定的列表或表的字符串即可. 一.非绑定模式 所谓的非绑定模式就是DataGridView控件显示的数据不是来自于绑定的数据源,而是可以通过代码手动将数据填充到DataGridView控件中,这样就为DataGridView控