请问我在datagridview裡添加了一datagridviewcheckboxcolumn列(當然還有其它很多列),我如何判斷用戶點擊了datagridviewcheckboxcolumn這列裡的內容,并且值也改變了?我應該使用哪個事件?謝謝.

解决方案 »

  1.   


            private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
                this.dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
                MessageBox.Show(this.dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString());
            }
      

  2.   

    CellContentClick
    或者
    ValueChange
      

  3.   

     private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
                if (dataGridView1.DataSource == null)
                {
                    return;
                }
                if (this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].Name == "colIsNeed")
                {
                    DataGridViewCheckBoxCell oCell = this.dgTest.CurrentCell as DataGridViewCheckBoxCell;
                    if ((bool)oCell.Value)
                    {
                        dataGridView1["colNumber",e.RowIndex].Value = e.RowIndex.ToString() ;
                    }
                    else
                    {
                        dataGridView1["colNumber", e.RowIndex].Value = "";
                    }
                }
            }
    参考
      

  4.   

    记得checkbox可以直接绑定boolean类型数据,不用加什么,
      

  5.   

    楼上正解,直接绑定bool类型,用CellValueChanged事件判断点击
      

  6.   


    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                if (e.RowIndex > -1 && e.ColumnIndex > -1)
                {
                    bool value = (bool)dataGridView1[e.ColumnIndex, e.RowIndex].Value;
                    dataGridView1[e.ColumnIndex, e.RowIndex].Value = !value;
                }
            }