我有一个叫GrdBjbmCho的DataGridView,其中有一列是DataGridViewCheckBoxColumns,叫Xz_F,我现在想做到,单击Xz_F列中的某一行时,如果是选中的(也就是value=1)时,就在一个DataTable里面插一行,value=0时就在DataTable里面删除一行.但现在有问题了,我发现在DataGridView的CellClick()事件里捕捉到的Xz_F值是Click之前的值,并不是Click之后的值..测试代码如下:
if (e.ColumnIndex == GrdBjbmCho.Columns["Xz_F"].Index) //如果当前列是BjbmCho_Xz_F
{
if (GrdBjbmCho.CurrentCell.Value.ToString().Trim() == "1")
{
MessageBox.Show("a");
}
}注:问题是当我在Xz_F列打上勾时,不提示Messagebox,而是当我把勾取消的时候,他才提示...晕..我怀疑CellClick事件是不是激发在修改值之前,所以捕捉不了修改后的值....请各位高手帮帮手...或者是不是要用其它方法...Vilad是件是不行的,因为我其它地方会直接修改该表的值,只能的Click时做处理
if (e.ColumnIndex == GrdBjbmCho.Columns["Xz_F"].Index) //如果当前列是BjbmCho_Xz_F
{
if (GrdBjbmCho.CurrentCell.Value.ToString().Trim() == "1")
{
MessageBox.Show("a");
}
}注:问题是当我在Xz_F列打上勾时,不提示Messagebox,而是当我把勾取消的时候,他才提示...晕..我怀疑CellClick事件是不是激发在修改值之前,所以捕捉不了修改后的值....请各位高手帮帮手...或者是不是要用其它方法...Vilad是件是不行的,因为我其它地方会直接修改该表的值,只能的Click时做处理
private void GrdBjbmCho_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (GrdBjbmCho.Columns[e.ColumnIndex].HeaderCell== "Xz_F"&&e.RowIndex!=-1)
{
if (GrdBjbmCho.CurrentCell.Value.ToString().Trim() == "1")
{
MessageBox.Show("a");
}
}
}