当前位置:编程学习 > C#/ASP.NET >>

datagridview 中恢复行颜色

之前有操作将某些单元格或是行的颜色做了修改
datagridview1.Rows[s].Cells[i].Style.BackColor = Color.Blue;
现在想恢复datagridview1的原本的行和单元格默认颜色 设置什么属性可以实现?
--------------------编程问答-------------------- 如果GRID是单色,就在离开的时候设回来就行了.
如果是复杂得的颜色,则需用JS取得其颜色,记录下来,然后再还原回去. --------------------编程问答--------------------
引用 1 楼 jsoner 的回复:
如果GRID是单色,就在离开的时候设回来就行了.
如果是复杂得的颜色,则需用JS取得其颜色,记录下来,然后再还原回去.


我的grid奇数偶数行默认颜色不一样 --------------------编程问答--------------------
引用 1 楼 jsoner 的回复:
如果GRID是单色,就在离开的时候设回来就行了.
如果是复杂得的颜色,则需用JS取得其颜色,记录下来,然后再还原回去.



没有离开是事件 而且我需要将整个GRID的所有的行的背景色都恢复到初始状态 --------------------编程问答-------------------- 颜色里面有一个默认的   default 颜色 这一你试一下   应该可以 --------------------编程问答--------------------
引用 4 楼 qianzai5765638 的回复:
颜色里面有一个默认的   default 颜色 这一你试一下   应该可以

没有 --------------------编程问答-------------------- ==  我试一下 --------------------编程问答-------------------- 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'}");//当鼠标移开时还原背景色 
     }
    } --------------------编程问答-------------------- 续7楼
因为GRID是默认的间隔变色,你可以取得e.RowIndex/2 == 0来判断奇数偶数行,然后再变色. --------------------编程问答--------------------






  /// <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了 --------------------编程问答-------------------- ok 了吗 --------------------编程问答--------------------
引用 10 楼 qianzai5765638 的回复:
ok 了吗

 
问题是我现在的 grid的选中模式是单元格模式 DefaultCellStyle 只能一个一个单元格恢复?
有没有啥办法把整个 grid样式全部 变为初始状态(里面的值不能丢) --------------------编程问答-------------------- 你 想让所有的行都变为初始的颜色吗 --------------------编程问答--------------------
引用 12 楼 qianzai5765638 的回复:
你 想让所有的行都变为初始的颜色吗

对 --------------------编程问答-------------------- 那你  

写一个循环  

for(int i=0; i<this.dataGridView1.Rows.count;i++ )
{
    this.dataGridView1.Rows[i].DefaultCellStyle.BackColor = this.dataGridView1.RowsDefaultCellStyle.ForeColor;
}

这样效果不达到了吗 --------------------编程问答-------------------- qianzai5765638

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

选中某个单元格 让选中的单元格变为红色 其所在行变为蓝色 --------------------编程问答--------------------
引用 16 楼 super84611 的回复:
你可以试着实现一下我说的功能 比如说

选中某个单元格 让选中的单元格变为红色 其所在行变为蓝色


这个被选中单元格可能是可以编辑的单元格。根本无法把红色涂上去 --------------------编程问答-------------------- 你是想让你点的那个cell 的颜色不是蓝色  是这个问题吗 --------------------编程问答--------------------  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;
        }


--------------------编程问答--------------------
引用 9 楼 qianzai5765638 的回复:
C# code






  /// <summary>
        /// 行颜色变化事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(o……


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


--------------------编程问答--------------------
引用 18 楼 qianzai5765638 的回复:
你是想让你点的那个cell 的颜色不是蓝色 是这个问题吗


你也可以这么理解吧,话说回来就算你想让他变成蓝色也没办法的,除非你再一次点击同一行的其他cell
--------------------编程问答-------------------- this.dataGridView1.DefaultCellStyle.SelectionBackColor = Color.Red; --------------------编程问答-------------------- 试一下Color.Empty!貌似我以前遇到过类似的问题是用它解决的。 --------------------编程问答-------------------- 这样你试一下  --------------------编程问答--------------------
引用 22 楼 qianzai5765638 的回复:
this.dataGridView1.DefaultCellStyle.SelectionBackColor = Color.Red;

引用 23 楼 yu_xiaot 的回复:
试一下Color.Empty!貌似我以前遇到过类似的问题是用它解决的。


这2个 我昨天就试过了 不过还是谢谢谢你 --------------------编程问答--------------------
引用 20 楼 super84611 的回复:
引用 9 楼 qianzai5765638 的回复:
C# code






/// <summary>
/// 行颜色变化事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(o……


还有data……



这个你试过吗   ?    我怎么就行啊  ?  拿到的值不是已经变成蓝色的值   , 你试过了吗 --------------------编程问答--------------------
引用 26 楼 qianzai5765638 的回复:
引用 20 楼 super84611 的回复:
引用 9 楼 qianzai5765638 的回复:
C# code






/// <summary>
/// 行颜色变化事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void butt……


你点的是BUTTON事件 而我要写在 dataGridView1_SelectionChanged 里 --------------------编程问答--------------------
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,