datagridview 中恢复行颜色
之前有操作将某些单元格或是行的颜色做了修改datagridview1.Rows[s].Cells[i].Style.BackColor = Color.Blue;
现在想恢复datagridview1的原本的行和单元格默认颜色 设置什么属性可以实现?
--------------------编程问答-------------------- 如果GRID是单色,就在离开的时候设回来就行了.
如果是复杂得的颜色,则需用JS取得其颜色,记录下来,然后再还原回去. --------------------编程问答--------------------
我的grid奇数偶数行默认颜色不一样 --------------------编程问答--------------------
没有离开是事件 而且我需要将整个GRID的所有的行的背景色都恢复到初始状态 --------------------编程问答-------------------- 颜色里面有一个默认的 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 了吗 --------------------编程问答--------------------
问题是我现在的 grid的选中模式是单元格模式 DefaultCellStyle 只能一个一个单元格恢复?
有没有啥办法把整个 grid样式全部 变为初始状态(里面的值不能丢) --------------------编程问答-------------------- 你 想让所有的行都变为初始的颜色吗 --------------------编程问答--------------------
对 --------------------编程问答-------------------- 那你
写一个循环
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当前单元格的背景色导致我无法控制 我当前选中的单元格子的颜色 --------------------编程问答-------------------- 你可以试着实现一下我说的功能 比如说
选中某个单元格 让选中的单元格变为红色 其所在行变为蓝色 --------------------编程问答--------------------
这个被选中单元格可能是可以编辑的单元格。根本无法把红色涂上去 --------------------编程问答-------------------- 你是想让你点的那个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;
}
--------------------编程问答--------------------
还有dataGridView1.RowsDefaultCellStyle.ForeColor; 你这里取到的一定是已经变了色的
就是说即便取到也是蓝色 那给他赋值这个颜色就没意义了
--------------------编程问答--------------------
你也可以这么理解吧,话说回来就算你想让他变成蓝色也没办法的,除非你再一次点击同一行的其他cell
--------------------编程问答-------------------- this.dataGridView1.DefaultCellStyle.SelectionBackColor = Color.Red; --------------------编程问答-------------------- 试一下Color.Empty!貌似我以前遇到过类似的问题是用它解决的。 --------------------编程问答-------------------- 这样你试一下 --------------------编程问答--------------------
这2个 我昨天就试过了 不过还是谢谢谢你 --------------------编程问答--------------------
这个你试过吗 ? 我怎么就行啊 ? 拿到的值不是已经变成蓝色的值 , 你试过了吗 --------------------编程问答--------------------
你点的是BUTTON事件 而我要写在 dataGridView1_SelectionChanged 里 --------------------编程问答--------------------
补充:.NET技术 , C#