是这样的,我的dgv里面有这样的记录, select代表是否已经选择相当于checkedBox控件
select            id           name           state
                   1           生产            运行
                   2           领料            执行
                   3           生产            运行
                   4           生产            完成
                   5           领料            执行我现在想要的效果就是选择name相同的列,如点击 select 列的id为1的行时,2 和 5就不能再选择,如果非要选择,就提示出错信息
如果先点击的事2,则1、3、4、5都不能选择。我用过CellBeginEdit、CellMouseClick、CellEndEdit事件,都不能很好的处理,请做过类似功能的人提供一下思路

解决方案 »

  1.   

    请做过类似功能的人提供一下思路
    给你思路吧:在每次选中以后,在第一次选中后,存入共性值到变量,比如第一次你选生产,那就把生产存起来.
    下次再有选中记录时,进行判断,如果想同不执行操作.如果不同,重新存共性值,再进行dgv的循环遍历,把与共性值不同的行ReadOnly属性设为值.
      

  2.   

      private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {            if (e.ColumnIndex == 0)
                    if (this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly == true )
                        return;
                    for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
                        if (this.dataGridView1.Rows[i].Cells[2].Value.ToString().Trim() != this.dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString().Trim())
                            this.dataGridView1.Rows[i].Cells[0].ReadOnly = true;
                                           
            }
    //有一个问题 就是所有checkedBox都不处于选中状态时,要把所有的checkedBox的ReadOnly 属性置为false,这个找不到一个好的事件来处理