0

我正在使用DataGridView包含一CheckBox列的 a。当我尝试检索该列的值时,它总是错误的。请让我知道原因。

这是我的代码:

private void dataGridViewCrossRef_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
     {
       bool isChecked1 = false;
       isChecked1 = (Boolean)dataGridViewCrossRef[25, e.RowIndex].FormattedValue;
       if (isChecked1)
       {
          //Some code
       }
     } 
4

2 回答 2

0

由于绑定到 Chekbox 的数据是整数,所以我将代码更改为如下所示并且它有效。

谢谢

私有 void dataGridViewCrossRef_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 25) { int CellValue = 0; CellValue = Convert.ToInt16(dataGridViewCrossRef[e.ColumnIndex, e.RowIndex].EditedFormattedValue); 如果(细胞值 == 1){

            }
        }
    }
于 2013-01-28T08:31:31.793 回答
0

试试CellContentClick Event

    private void dataGridViewCrossRef_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == 25)
        {
            bool IsBool = false;
            if (bool.TryParse(dataGridViewCrossRef[e.ColumnIndex, e.RowIndex].EditedFormattedValue.ToString(), out IsBool))
            {
               //Some code
            }
        }
    }

编辑

试试这个,CellClick Event你需要声明你dataTablepublic

   private void dataGridViewCrossRef_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == 25)
        {
            //Find primaykey or something unique from your dataTable   
            DataRow[] Rows = dataTable.Select("Id = '" + dataGridViewCrossRef[0, e.RowIndex].EditedFormattedValue.ToString() + "'");

            Rows[0]["NameOfColumnHasCheckBox"] = !bool.Parse(Rows[0]["NameOfColumnHasCheckBox"].ToString());
        }
    }
于 2013-01-28T07:31:44.220 回答