如果GRID是单色,就在离开的时候设回来就行了.
如果是复杂得的颜色,则需用JS取得其颜色,记录下来,然后再还原回去.

解决方案 »

  1.   


    我的grid奇数偶数行默认颜色不一样
      

  2.   

    没有离开是事件 而且我需要将整个GRID的所有的行的背景色都恢复到初始状态
      

  3.   

    颜色里面有一个默认的   default 颜色 这一你试一下   应该可以
      

  4.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
         {
    e.Row.Attributes.Add("onmouseover", "if(this!=prevselitem){this.style.backgroundColor='#Efefef'}");//当鼠标停留时更改背景色 
    e.Row.Attributes.Add("onmouseout", "if(this!=prevselitem){this.style.backgroundColor='#ffffff'}");//当鼠标移开时还原背景色 
         }
        }
      

  5.   

    续7楼
    因为GRID是默认的间隔变色,你可以取得e.RowIndex/2 == 0来判断奇数偶数行,然后再变色.
      

  6.   

      /// <summary>
            /// 行颜色变化事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button2_Click(object sender, EventArgs e)
            {
                this.dataGridView1.Rows[0].DefaultCellStyle.BackColor = Color.Red;
            }
            /// <summary>
            /// 变回原来的颜色事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button1_Click(object sender, EventArgs e)
            {
                this.dataGridView1.Rows[0].DefaultCellStyle.BackColor = this.dataGridView1.RowsDefaultCellStyle.ForeColor;
            }这样就ok了
      

  7.   

     
    问题是我现在的 grid的选中模式是单元格模式 DefaultCellStyle 只能一个一个单元格恢复?
    有没有啥办法把整个 grid样式全部 变为初始状态(里面的值不能丢)
      

  8.   

    那你  写一个循环  for(int i=0; i<this.dataGridView1.Rows.count;i++ )
    {
        this.dataGridView1.Rows[i].DefaultCellStyle.BackColor = this.dataGridView1.RowsDefaultCellStyle.ForeColor;
    }这样效果不达到了吗
      

  9.   

    qianzai5765638事情是这样的 我想在一个grid里事先选中某一个单元格 让其所在行变为蓝色(不包括我点击的单元格)
    由于我的Gird选中模式必须是选中单元格模式所以无法用.net自带的 DefaultCellStyle.BackColor
    属性设置 但是如果我点击了 一个可编辑的单元格 这个单元格会实例化一个textbox 并取grid当前单元格的背景色导致我无法控制 我当前选中的单元格子的颜色
      

  10.   

    你是想让你点的那个cell 的颜色不是蓝色  是这个问题吗
      

  11.   

     private void button2_Click(object sender, EventArgs e)
            {
                this.dataGridView1.Rows[0].DefaultCellStyle.BackColor = Color.Red;
            }
            /// <summary>
            /// 变回原来的颜色事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button1_Click(object sender, EventArgs e)
            {
                this.dataGridView1.Rows[0].DefaultCellStyle.BackColor = this.dataGridView1.RowsDefaultCellStyle.ForeColor;
            }
      

  12.   


    还有dataGridView1.RowsDefaultCellStyle.ForeColor; 你这里取到的一定是已经变了色的
    就是说即便取到也是蓝色 那给他赋值这个颜色就没意义了
            
      

  13.   


    你也可以这么理解吧,话说回来就算你想让他变成蓝色也没办法的,除非你再一次点击同一行的其他cell
      

  14.   

    this.dataGridView1.DefaultCellStyle.SelectionBackColor = Color.Red;
      

  15.   

    试一下Color.Empty!貌似我以前遇到过类似的问题是用它解决的。
      

  16.   


    你点的是BUTTON事件 而我要写在 dataGridView1_SelectionChanged 里