一次只能在特定行中选中一个复选框

时间:2013-07-02 04:30:22

标签: c# datagridview

我有一个datagridview。它有2列,类型为boolean。现在我想要做的是,当我点击一个复选框时,应该取消选中同一行中的另一个复选框。也就是说,一次只能在特定行中选中一个复选框。用户不应该同时选中2个复选框。

我怎样才能做到这一点?我尝试使用cellcontentclick和cellcontentChanged事件。什么都行不通。

任何输入??

2 个答案:

答案 0 :(得分:0)

您可以使用CellEndEdit Event或CellLeave事件

当您在编辑后离开单元格时,此事件将会触发。 在下面的代码段中,Column1是您的第一个复选框,Column2是您的另一个复选框。

       private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
        if (Convert.ToBoolean(dataGridView1.Rows[e.RowIndex].Cells["Column1"].Value))
            dataGridView1.Rows[e.RowIndex].Cells["Column2"].Value = false;
        }

答案 1 :(得分:0)

使用 DataGrid_CellEditEnding

在迭代数据源中,如果你发现任何已检查的列(boolean true),则取消选中它(boolean false)。 希望它会帮助你

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
         foreach (var Item in dataGridView1.ItemsSource)
         {
             if(Item.isChecked) 
                 Item.isChecked = false;
         }
    if (Convert.ToBoolean(dataGridView1.Rows[e.RowIndex].Cells["Column1"].Value))
        dataGridView1.Rows[e.RowIndex].Cells["Column2"].Value = false;
    }