怪事:datagridview编辑列时,移动过列的位置,现在列索引与实际的对应关系错了

fqfqfqfq2 2011-06-29 03:59:20
怪事:datagridview编辑列时,移动过列的位置,现在列索引与实际的对应关系错了
我想根据某列的内容,设定表格行的颜色,但是现在不对了
dgr.Cells[12].Value.ToString() == "1"
如上,第12列绝对是呀,但是Cells[12]好像并不是 第12列了(基于0)


//高亮显示
private void DataGrid1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
if (e.RowIndex > DataGrid1.Rows.Count - 1)
return;

DataGridViewRow dgr = DataGrid1.Rows[e.RowIndex];
try
{
for (int i = 0; i < DataGrid1.Rows.Count; i++)
{
//dgr.Cells[12]是状态标志
if (dgr.Cells[12].Value.ToString() == "1" )
{
//dgr.DefaultCellStyle.BackColor = Color.Red;
dgr.DefaultCellStyle.ForeColor = Color.Blue;
}
else if (dgr.Cells[12].Value.ToString() == "2" )
{
//冲销标志为0,但是被冲销号不是0,则说明是被冲的记录,令其为绿色
dgr.DefaultCellStyle.ForeColor = Color.Red;
}

if (dgr.Cells[14].Value.ToString() == "√")
{
dgr.DefaultCellStyle.BackColor = Color.LightBlue;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
...全文
151 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengyingcan 2012-04-29
  • 打赏
  • 举报
回复
估计是无解了呀
zhengyingcan 2012-04-29
  • 打赏
  • 举报
回复
我也遇到了同样的问题,呵呵,
fqfqfqfq2 2011-06-30
  • 打赏
  • 举报
回复
up .
fqfqfqfq2 2011-06-29
  • 打赏
  • 举报
回复
谢谢,用列名行了
可是,我不明白,为何索引,会错位呢?

在编辑列中从上到下数,基于0,
我算的没错呀。可是
cell[i]对应的就不是 第 i 列。

如果对列 没有进行过 删除,移位等,是正常的。
可是只要有过移位,等操作,好像就乱了。

这是为什么呢?遇到多次了。
bdmh 2011-06-29
  • 打赏
  • 举报
回复
那就用Cells["列名"]来判断吧,别用索引了,太死,容易错

111,125

社区成员

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

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

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