通常情况下,只要选中行,再点checkbox,勾选状态马上就有变化。但是我程序里的一个datagrid莫名其妙地出现了这样的事情:必须双击checkbox,然后鼠标再点别的cell,才能看到勾选状态变了请问有人碰到这样的情况么,知道怎么解决么?谢谢了!

解决方案 »

  1.   

    你从新编译一下看,万一不行 ,把那个datagrid 删掉重做各,再不行把那个页面删掉重做
      

  2.   

    datagrid根本没有事件多谢楼上各位继续问我已经接近抓狂了
      

  3.   

    checkbox是三态值,而非二态值下面代码是我实际使用,其中col为checkbox列索引private void dataGrid1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    int row=dataGrid1.CurrentCell.RowNumber;
    int col=dataGrid1.CurrentCell.ColumnNumber;
    int maxRow=((DataTable)dataGrid1.DataSource).Rows.Count; //if (col>1)
    if (row<maxRow && col>1)
    {
    bool b;
    b=Convert.IsDBNull(dt.Rows[row][col]);
    if (b==true)
    {
    dt.Rows[row][col]=1;
    }
    else
    {
    b=Convert.ToBoolean(dt.Rows[row][col]);
    dt.Rows[row][col]=b==true?0:1;
    }
    }
    }
      

  4.   

    问题解决了,换了个思路        private void dg_MouseDown(object sender, MouseEventArgs e)
            {
                DataGrid.HitTestInfo hti = dg.HitTest(e.X, e.Y);            if (hti.Type==DataGrid.HitTestType.Cell)
                {
                    dg.CurrentCell = new DataGridCell(hti.Row, hti.Column);                dg.Select(hti.Row);                DataRowView drv =
                        (DataRowView)
                        BindingContext[dg.DataSource, ((DataSet) dg.DataSource).Tables[0].TableName].
                            Current;
                }
            }
    这样就可以了