以编程方式取消选中datagridview中的checkboxcolumn

时间:2011-01-18 14:43:55

标签: c# winforms datagridview datagridviewcheckboxcell

如何以编程方式取消选中datagridview中DataGridViewCheckboxColumn中的所有行?

我可以使用

获取复选框的正确值
(bool)row.Cells[CheckBoxColumn.Index].FormattedValue

但那只是一个吸气剂。

我尝试使用

设置单元格的值
(bool)row.Cells[CheckBoxColumn.Index].value = false

但这不会影响FormattedValue。

我该如何解决这个问题?

8 个答案:

答案 0 :(得分:2)

你做某事。像:

(row.Cells[CheckBoxColumn.Index] as DataGridViewCheckBoxCell).value = false;

您只是忘记以转换为正确的类型,通用DataGridViewCell不知道其值类型。

答案 1 :(得分:0)

您是否尝试将复选框列中的第一个控件转换为复选框,然后将“Checked”设置为true?

尝试这种程度的东西。

((DataGridViewCheckBoxCell)e.Rows[0].Cells[0]).Selected = true

答案 2 :(得分:0)

未检查但您可以尝试;

CheckBox cb = (row.Cells[CheckBoxColumn.Index].Controls[0] as CheckBox);
if(cb != null)
{
    cb.Checked = false;
}

它的类型可能不同。只需调试并将其转换为原样即可。

答案 3 :(得分:0)

foreach (DataGridViewRow dr in dataGridView1.Rows)
{
  dr.Cells[0].Value = true;//sıfırın
}

答案 4 :(得分:0)

如果你使用dataGridView1_ContextClick只做“false”datagidviewCheckBox列需要这个代码:

dataGridView1.CancelEdit();

但是如果你需要DataGrid的所有CheckBoxColumns行:

private void button1_Click(object sender, EventArgs e)
{
    foreach (DataGridViewRow r in dataGridView1.Rows)
    {
        r.Cells["statusBox"].Value = true;
    }
}

答案 5 :(得分:0)

看你想做什么

如果是关于所选行,那么您可以:

DataGridViewRow row = dataGridViewName.CurrentRow;

//This will assign the opposite value of the Cell Content
row.Cells["ColumnName"].Value = !Convert.ToBoolean(row.Cells["ColumnName"].Value);

但是,如果您希望针对整个 DataGridView 表执行此操作,则:

    foreach (DataGridViewRow row in dataGridViewName.Rows)

   {
        //This will assign the opposite value of the Cell Content
        row.Cells["ColumnName"].Value = !Convert.ToBoolean(row.Cells["ColumnName"].Value);
   }

任何适合您的东西。继续加油!

答案 6 :(得分:-1)

遍历网格视图的每一行并使用find控制方法:

foreach ( GridViewRow row in myGridView )
{
     CheckBox checkBox = ( CheckBox ) row.FindControl( "myCheckBox" );
     checkbox.Checked = false;
}

答案 7 :(得分:-1)

 foreach (DataGridViewRow row in datagridviewname.Rows)

  {
    row.Cells[CheckBoxColumn1_Name].Value = false;
  }