我的表格第一列是DataGridViewCheckBoxColumn的类型,项目的要求, 第一行中的checkBox不显示出来,其余正常。也就是 第一行第一列的单元格,我该怎么弄,谢谢了。
还有个问题就是
行头怎么默认不让被选中,有数据的时候第一行被选中 
这样写 dgvtable.Rows[0].Selected = false第一行没有选中了 
但是行头还是被选中的再写dgvtable.Rows[0].HeaderCell.Selected = false;报错 不能设置他的属性。我该怎么弄,才让行头默认不被选中。

解决方案 »

  1.   

    第一行的中的visible设为false,不就行了,动态添加checkbox的话你就if 下行号,为第一行的话
    设置checkbox的visible=false
     this.dataGridView1.ClearSelection();在最后加上这句,应该就不会选中了吧
      

  2.   

    楼主,你提的问题,看似简单,其实很有难度!以现有的DataGridView一些属性和方法,很难实现你的需求!建议你把分数提高到100,吸引高手帮你来解决。
      

  3.   

    我想了一个办法,并且测试,基本达到你的要求:把DataGridViewCheckBoxColumn类型改为DataGridViewTextkBoxColumn类型,自己控制单元格的绘画过程:        private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
            {
                if(e.ColumnIndex==1 && e.RowIndex > 0)  //精确控制行、列
                {
                    bool val =Convert.ToBoolean(e.Value);
     
                    if(val)
                    {
                        e.Handled = true;
                        ControlPaint.DrawCheckBox(e.Graphics, e.CellBounds, ButtonState.Checked);  
                    }
                }
            }
      

  4.   

     还有就是我绘图 也遇到问题,在滚动的时候,那个位置不变,比如现在滚动到30行了,会把30行的给绘没有了,
                     if (e.RowIndex == 0 && e.ColumnIndex == 0)
                        {                       
                            Rectangle re = e.CellBounds;
                        }在滚动的时候,怎么获取原来的位置呢? 
      

  5.   

    如果是这样的话,只有自己自定义写个DataGridView了,我说过:这个问题本来很头晕!
      

  6.   


    唉 我刚刚还是把这个问题给解决了, 还是不是最满意的答案啊。  今天高手都不上CSDN吗?
      

  7.   

    问题自己解决了,真的没有办法的办法,用Lable挡住。
      

  8.   

    我的是最后合计行怎么用lable