gpt4 book ai didi

c# - 有没有办法使 row.DefaultCellStyle.BackColor 固定,尽管重新绘制?

转载 作者:可可西里 更新时间:2023-11-01 11:26:24 26 4
gpt4 key购买 nike

现在我正在使用以下内容为我的 datagridview 行着色:

foreach (DataGridViewRow row in dataGridView1.Rows)
{
if ((row.Index % 2) == 0)
{
row.DefaultCellStyle.BackColor = Color.NavajoWhite;
}
}

这适用于第一次加载数据时。但是,我也使用第三方库来像 Excel 那样过滤列 ( http://www.codeproject.com/Articles/33786/DataGridView-Filter-Popup )。它工作得很好,但问题是此代码在应用的每个过滤(纯白色)上重新绘制 datagridview。我可以在每次过滤后捕获必要的事件来重新绘制我的行,如果我愿意的话,例如

dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)

但是,如果我有大矩阵(数十万行),效率会非常低。

问题是是否有办法使行背景色固定,尽管通过过滤进行了重绘。在我看来,这可能是一个远景,所以任何解决这个问题或让它更快、更有效的建议,我们将不胜感激。

最佳答案

尝试为每个单元格只处理CellPainting事件

private void dataGridView1_CellPainting(object sender,
System.Windows.Forms.DataGridViewCellPaintingEventArgs e)
{
if ((e.RowIndex % 2) == 0)
e.CellStyle.BackColor = Color.NavajoWhite;
}

关于c# - 有没有办法使 row.DefaultCellStyle.BackColor 固定,尽管重新绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34353984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com