winform 在DataGridview中的checkbox如何实现单选?

解决方案 »

  1.   

    http://blog.csdn.net/zhoukk1985/article/details/7229257
      

  2.   

    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                if (e.RowIndex == -1 || e.ColumnIndex == -1)
                    return;
                if (e.ColumnIndex == 0)
                {
                    DataGridViewCheckBoxCell ccbc = dataGridView1.Rows[e.RowIndex].Cells[0] as DataGridViewCheckBoxCell;
                    if (ccbc.Value.ToString() == "true")
                    {
                        ccbc.Value = "false";
                    }
                    else
                    {
                        ccbc.Value = "true";
                    }
                }
            }        private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
            {
                foreach (DataGridViewRow dr in this.dataGridView1.Rows)
                {
                    //dr.ReadOnly = true;
                    DataGridViewCheckBoxCell dc = dr.Cells[0] as DataGridViewCheckBoxCell;
                    if (dc == null)
                        return;
                    dc.ReadOnly = false;
                    dc.TrueValue = "true";
                    dc.FalseValue = "false";
                    dc.Value = "false";
                }
            }
    这是DataGridview的两个事件,dr.Cells[0]是第一列"选择"
      

  3.   

    http://blog.csdn.net/zhoukk1985/article/details/7229257
      

  4.   

    如果有多个含有Checkbox类型的列,需要在网格数据更改时进行判断,保证选中一个后其他的自动变为非选中。
    由于Checkbox只有选中、非选中两种状态(忽略第三态),可以在CellBeginEdit事件中处理。
      

  5.   

    我这台电脑没有VS,知道datagridview中属性中有个叫"集合"的点进去,里面可以设置列为checkbox,到里面看下其他属性。