解决方案 »

  1.   

    dataGridView1.AllowUserToResizeColumns = false;
    这样用户就不能手动调整单元格的大小了.
    然后你可以计算一下窗口的宽度,在size_changed事件里动态改变另一列的宽度.
    颜色的问题,默认的显示本来就是无颜色指示的,可能是你的皮肤自动加上去的.
    可以做代码判断用户点的是哪一行,然后 dataGridView1.Rows[i].Cells[j].Selected = false;
     dataGridView1.Rows[i].Selected = true;
      

  2.   


    谢谢大哥的回答,第一个问题解决了,关于颜色的问题,我发现默认的的控件的确是没有颜色的,我现在用的是DotNetBar,按照你说的 做了, 但没有效果,不知道是不是代码问题?
      private void dataGridViewX1_CellClick(object sender, DataGridViewCellEventArgs e)
            {
               int row=  e.RowIndex;
               dataGridViewX1.Rows[row].Cells[0].Selected = false;
               dataGridViewX1.Rows[row].Selected = true;
            }
      

  3.   

    设置 它的ColumnHeadersDefaultCellStyle 属性试试
      

  4.   

    private void dataGridViewX1_CellClick(object sender, DataGridViewCellEventArgs e)
            {
               int row=  e.RowIndex;
               dataGridViewX1.Rows[row].Cells[0].Selected = false;
               dataGridViewX1.Rows[row].Selected = true;
            }
    为什么是Cells[0]啊,如果你点的是Cells[1]怎么办
    先将选中的单元格设置为未选中,然后再选中整行.
    或者你直接
    dataGridViewX1.Rows[row].Selected = false;
    dataGridViewX1.Rows[row].Selected = true;