datagridview 隔行显示不同颜色问题

t_kong 2013-10-07 02:27:54
根据网上的用法,想隔行显示不同颜色,采用databridingcomplete事件
private void dgv_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
if (this.dgv.Rows.Count != 0)
{
for (int i = 0; i < this.dgv.Rows.Count; )
{
this.dgv.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.LightYellow;
i += 2;
}
}
}
但是我添加或者删除行的时候,颜色就会混乱了。对于这种情况,应该如何处理?
...全文
371 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
智商余额不足 2013-10-07
  • 打赏
  • 举报
回复
引用 8 楼 t_kong 的回复:
[quote=引用 5 楼 hwenycocodq520 的回复:] winform的吗?它不是有个属性设置交替行颜色的吗?
初学者,谢谢提示。[/quote] 7楼
t_kong 2013-10-07
  • 打赏
  • 举报
回复
引用 5 楼 hwenycocodq520 的回复:
winform的吗?它不是有个属性设置交替行颜色的吗?
初学者,谢谢提示。
全栈极简 2013-10-07
  • 打赏
  • 举报
回复
实际上只要这一句话就可以了。类似的可以自行扩展。
this.dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.Pink;//设置交换项的背景色为pink
lhx527099095 2013-10-07
  • 打赏
  • 举报
回复
引用 2 楼 t_kong 的回复:
[quote=引用 1 楼 lhx527099095 的回复:] [quote=引用 楼主 t_kong 的回复:] 根据网上的用法,想隔行显示不同颜色,采用databridingcomplete事件 private void dgv_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { if (this.dgv.Rows.Count != 0) { for (int i = 0; i < this.dgv.Rows.Count; ) { this.dgv.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.LightYellow; i += 2; } } } 但是我添加或者删除行的时候,颜色就会混乱了。对于这种情况,应该如何处理?
删除或者添加后重新绑定 怎么会乱呢?[/quote] 添加空行: string[] str = {}; ((DataTable)dgv.DataSource).Rows.Add(str); 删除行: if (dgv.CurrentCell.RowIndex != -1) { dgv.Rows.Remove(dgv.CurrentRow); }[/quote] 你直接%2看奇偶行赋给不同的颜色 每次删除或者添加后重新绑定控件 执行你绑定的代码换颜色 肯定不会乱
智商余额不足 2013-10-07
  • 打赏
  • 举报
回复
winform的吗?它不是有个属性设置交替行颜色的吗?
智商余额不足 2013-10-07
  • 打赏
  • 举报
回复

for (int i = 0; i < this.dgv.Rows.Count;i++)
智商余额不足 2013-10-07
  • 打赏
  • 举报
回复

for (int i = 0; i < this.dgv.Rows.Count; )
{
   if(i%2==0)
      this.dgv.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.LightYellow;
   else
      //其他颜色  
}
t_kong 2013-10-07
  • 打赏
  • 举报
回复
引用 1 楼 lhx527099095 的回复:
[quote=引用 楼主 t_kong 的回复:] 根据网上的用法,想隔行显示不同颜色,采用databridingcomplete事件 private void dgv_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { if (this.dgv.Rows.Count != 0) { for (int i = 0; i < this.dgv.Rows.Count; ) { this.dgv.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.LightYellow; i += 2; } } } 但是我添加或者删除行的时候,颜色就会混乱了。对于这种情况,应该如何处理?
删除或者添加后重新绑定 怎么会乱呢?[/quote] 添加空行: string[] str = {}; ((DataTable)dgv.DataSource).Rows.Add(str); 删除行: if (dgv.CurrentCell.RowIndex != -1) { dgv.Rows.Remove(dgv.CurrentRow); }
lhx527099095 2013-10-07
  • 打赏
  • 举报
回复
引用 楼主 t_kong 的回复:
根据网上的用法,想隔行显示不同颜色,采用databridingcomplete事件 private void dgv_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { if (this.dgv.Rows.Count != 0) { for (int i = 0; i < this.dgv.Rows.Count; ) { this.dgv.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.LightYellow; i += 2; } } } 但是我添加或者删除行的时候,颜色就会混乱了。对于这种情况,应该如何处理?
删除或者添加后重新绑定 怎么会乱呢?

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧