DataGridView带有一个选中默认值的复选框

时间:2012-12-10 06:51:56

标签: c# winforms datagridview checkbox

我在Winform中有一个dataGridView,我在datagrid中添加了一个列,其中的复选框使用了我在此处看到的代码:

    DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
    {
        column.HeaderText = "Export";
        column.Name = "Export";
        column.AutoSizeMode =
            DataGridViewAutoSizeColumnMode.DisplayedCells;
        column.FlatStyle = FlatStyle.Standard;
        column.CellTemplate = new DataGridViewCheckBoxCell(false);
        column.CellTemplate.Style.BackColor = Color.White;
    }

    gStudyTable.Columns.Insert(0, column);  

这有效但我希望检查checkBox作为我添加的默认锯:

    foreach (DataGridViewRow row in gStudyTable.Rows)
    {                
        row.Cells[0].Value = true;
    }

但仍未选中复选框col。我正在使用一个集合作为我的数据源,并在添加数据源后更改了col的值。

7 个答案:

答案 0 :(得分:10)

我认为无法在列声明中设置选中的值。你将会有 在设置数据源之后检查行检查它(例如在DataBindingComplete事件中):

for (int i = 0; i < dataGridView1.Rows.Count -1; i++)
{
dataGridView1.Rows[i].Cells[0].Value = true;
}

使用列名:

for (int i = 0; i < dataGridView1.Rows.Count -1; i++)
{
   dataGridView1.Rows[i].Cells["Export"].Value = true;
}

答案 1 :(得分:3)

尝试这样做:

foreach (DataGridViewRow row in dgv.Rows)     
{
    row.Cells[CheckBoxColumn.Name].Value = true;     
} 

答案 2 :(得分:1)

确保在设置DataGridViewCheckBoxCells的值时显示DataGridView:我在TabControl的第二个选项卡中拥有我的名字,并且初始化后始终未选中这些单元格。为了解决这个问题,我不得不将单元格初始化移到TabControl的SelectedIndexChanged事件中。

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (this.tabControl1.SelectedIndex == 1)
    {
        foreach (DataGridViewRow row in this.myGridView.Rows)
        {
            ((DataGridViewCheckBoxCell)row.Cells[0]).Value = true;
        }
    }
}

答案 3 :(得分:0)

您可以在datagridview中使用datatable并创建列,然后添加行,为每行提供第一列值为“True”或“False”。

试试这个

答案 4 :(得分:0)

if((bool)this.dataGridView2.Rows [i] .Cells [0] .FormattedValue == true)

答案 5 :(得分:0)

在加载网格中的值期间或之后,检查网格中的值是否使用此代码并设置网格列的属性

foreach (DataGridViewRow row in dataGridView.Rows)
{
    row.Cells[0].Value = 1;
}

enter image description here

答案 6 :(得分:-2)

一种简单的方法是使用属性NewRowIndex,如下所示:

dvgInvoiceItems.Rows[dvgInvoiceItems.NewRowIndex-1].Cells[5].Value = true;
dvgInvoiceItems.Rows[dvgInvoiceItems.NewRowIndex-1].Cells[6].Value = true;