datagridview1.Rows[s].Cells[i].Style.BackColor = Color.Blue;
现在想恢复datagridview1的原本的行和单元格默认颜色 设置什么属性可以实现?
28 个解决方案
#1
如果GRID是单色,就在离开的时候设回来就行了.
如果是复杂得的颜色,则需用JS取得其颜色,记录下来,然后再还原回去.
如果是复杂得的颜色,则需用JS取得其颜色,记录下来,然后再还原回去.
#2
我的grid奇数偶数行默认颜色不一样
#3
没有离开是事件 而且我需要将整个GRID的所有的行的背景色都恢复到初始状态
#4
颜色里面有一个默认的 default 颜色 这一你试一下 应该可以
#5
没有
#6
== 我试一下
#7
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'}");//当鼠标移开时还原背景色
}
}
{
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'}");//当鼠标移开时还原背景色
}
}
#8
续7楼
因为GRID是默认的间隔变色,你可以取得e.RowIndex/2 == 0来判断奇数偶数行,然后再变色.
因为GRID是默认的间隔变色,你可以取得e.RowIndex/2 == 0来判断奇数偶数行,然后再变色.
#9
/// <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了
#10
ok 了吗
#11
问题是我现在的 grid的选中模式是单元格模式 DefaultCellStyle 只能一个一个单元格恢复?
有没有啥办法把整个 grid样式全部 变为初始状态(里面的值不能丢)
#12
你 想让所有的行都变为初始的颜色吗
#13
对
#14
那你
写一个循环
for(int i=0; i<this.dataGridView1.Rows.count;i++ )
{
this.dataGridView1.Rows[i].DefaultCellStyle.BackColor = this.dataGridView1.RowsDefaultCellStyle.ForeColor;
}
这样效果不达到了吗
写一个循环
for(int i=0; i<this.dataGridView1.Rows.count;i++ )
{
this.dataGridView1.Rows[i].DefaultCellStyle.BackColor = this.dataGridView1.RowsDefaultCellStyle.ForeColor;
}
这样效果不达到了吗
#15
qianzai5765638
事情是这样的 我想在一个grid里事先选中某一个单元格 让其所在行变为蓝色(不包括我点击的单元格)
由于我的Gird选中模式必须是选中单元格模式所以无法用.net自带的 DefaultCellStyle.BackColor
属性设置 但是如果我点击了 一个可编辑的单元格 这个单元格会实例化一个textbox 并取grid当前单元格的背景色导致我无法控制 我当前选中的单元格子的颜色
事情是这样的 我想在一个grid里事先选中某一个单元格 让其所在行变为蓝色(不包括我点击的单元格)
由于我的Gird选中模式必须是选中单元格模式所以无法用.net自带的 DefaultCellStyle.BackColor
属性设置 但是如果我点击了 一个可编辑的单元格 这个单元格会实例化一个textbox 并取grid当前单元格的背景色导致我无法控制 我当前选中的单元格子的颜色
#16
你可以试着实现一下我说的功能 比如说
选中某个单元格 让选中的单元格变为红色 其所在行变为蓝色
选中某个单元格 让选中的单元格变为红色 其所在行变为蓝色
#17
这个被选中单元格可能是可以编辑的单元格。根本无法把红色涂上去
#18
你是想让你点的那个cell 的颜色不是蓝色 是这个问题吗
#19
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;
}
{
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;
}
#20
还有dataGridView1.RowsDefaultCellStyle.ForeColor; 你这里取到的一定是已经变了色的
就是说即便取到也是蓝色 那给他赋值这个颜色就没意义了
#21
你也可以这么理解吧,话说回来就算你想让他变成蓝色也没办法的,除非你再一次点击同一行的其他cell
#22
this.dataGridView1.DefaultCellStyle.SelectionBackColor = Color.Red;
#23
试一下Color.Empty!貌似我以前遇到过类似的问题是用它解决的。
#24
这样你试一下
#25
这2个 我昨天就试过了 不过还是谢谢谢你
#26
这个你试过吗 ? 我怎么就行啊 ? 拿到的值不是已经变成蓝色的值 , 你试过了吗
#27
你点的是BUTTON事件 而我要写在 dataGridView1_SelectionChanged 里
#28
#1
如果GRID是单色,就在离开的时候设回来就行了.
如果是复杂得的颜色,则需用JS取得其颜色,记录下来,然后再还原回去.
如果是复杂得的颜色,则需用JS取得其颜色,记录下来,然后再还原回去.
#2
我的grid奇数偶数行默认颜色不一样
#3
没有离开是事件 而且我需要将整个GRID的所有的行的背景色都恢复到初始状态
#4
颜色里面有一个默认的 default 颜色 这一你试一下 应该可以
#5
没有
#6
== 我试一下
#7
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'}");//当鼠标移开时还原背景色
}
}
{
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'}");//当鼠标移开时还原背景色
}
}
#8
续7楼
因为GRID是默认的间隔变色,你可以取得e.RowIndex/2 == 0来判断奇数偶数行,然后再变色.
因为GRID是默认的间隔变色,你可以取得e.RowIndex/2 == 0来判断奇数偶数行,然后再变色.
#9
/// <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了
#10
ok 了吗
#11
问题是我现在的 grid的选中模式是单元格模式 DefaultCellStyle 只能一个一个单元格恢复?
有没有啥办法把整个 grid样式全部 变为初始状态(里面的值不能丢)
#12
你 想让所有的行都变为初始的颜色吗
#13
对
#14
那你
写一个循环
for(int i=0; i<this.dataGridView1.Rows.count;i++ )
{
this.dataGridView1.Rows[i].DefaultCellStyle.BackColor = this.dataGridView1.RowsDefaultCellStyle.ForeColor;
}
这样效果不达到了吗
写一个循环
for(int i=0; i<this.dataGridView1.Rows.count;i++ )
{
this.dataGridView1.Rows[i].DefaultCellStyle.BackColor = this.dataGridView1.RowsDefaultCellStyle.ForeColor;
}
这样效果不达到了吗
#15
qianzai5765638
事情是这样的 我想在一个grid里事先选中某一个单元格 让其所在行变为蓝色(不包括我点击的单元格)
由于我的Gird选中模式必须是选中单元格模式所以无法用.net自带的 DefaultCellStyle.BackColor
属性设置 但是如果我点击了 一个可编辑的单元格 这个单元格会实例化一个textbox 并取grid当前单元格的背景色导致我无法控制 我当前选中的单元格子的颜色
事情是这样的 我想在一个grid里事先选中某一个单元格 让其所在行变为蓝色(不包括我点击的单元格)
由于我的Gird选中模式必须是选中单元格模式所以无法用.net自带的 DefaultCellStyle.BackColor
属性设置 但是如果我点击了 一个可编辑的单元格 这个单元格会实例化一个textbox 并取grid当前单元格的背景色导致我无法控制 我当前选中的单元格子的颜色
#16
你可以试着实现一下我说的功能 比如说
选中某个单元格 让选中的单元格变为红色 其所在行变为蓝色
选中某个单元格 让选中的单元格变为红色 其所在行变为蓝色
#17
这个被选中单元格可能是可以编辑的单元格。根本无法把红色涂上去
#18
你是想让你点的那个cell 的颜色不是蓝色 是这个问题吗
#19
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;
}
{
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;
}
#20
还有dataGridView1.RowsDefaultCellStyle.ForeColor; 你这里取到的一定是已经变了色的
就是说即便取到也是蓝色 那给他赋值这个颜色就没意义了
#21
你也可以这么理解吧,话说回来就算你想让他变成蓝色也没办法的,除非你再一次点击同一行的其他cell
#22
this.dataGridView1.DefaultCellStyle.SelectionBackColor = Color.Red;
#23
试一下Color.Empty!貌似我以前遇到过类似的问题是用它解决的。
#24
这样你试一下
#25
这2个 我昨天就试过了 不过还是谢谢谢你
#26
这个你试过吗 ? 我怎么就行啊 ? 拿到的值不是已经变成蓝色的值 , 你试过了吗
#27
你点的是BUTTON事件 而我要写在 dataGridView1_SelectionChanged 里