SplitContainer中的DataGridView无法重绘

时间:2012-08-03 12:49:28

标签: c# winforms

我有一个DataGridView,其中第一列可以容纳动画gif(动画加载圈)。为了使动画部分工作,我使用一个每100ms滴答一次的Forms.Timer并调用此方法

    private void timGifAnimation_Tick(object sender, EventArgs e)
    {
        if(this.dataGridView1.Rows.Count > 0 && current >= 0 && current < this.dataGridView1.Rows.Count) 
        {
            this.dataGridView1.Rows[current].Cells[0].Value = this.picProcessing.Image;
            this.dataGridView1.InvalidateCell(0, current);
        }
    }

在将我的DataGridView放入SplitContainer之前,这就像一个迷人的工作。通过调用InvalidateCell不再重新绘制单元格,这是gif动画工作的唯一时间,现在是调整窗口大小或当我将鼠标悬停在按钮上时(悬停重绘一次,将鼠标移离按钮重新绘制)它再次)。在调试时,仍会调用上面的方法,它只是不重新绘制单元格。

1 个答案:

答案 0 :(得分:0)

使控件或控件的一部分无效,将该区域标记为需要重新绘制。为了强制进行同步重绘,您应该在控件上调用Update()。否则,只要下一个绘制消息出现,就会重新绘制无效的单元格。

dataGridView1.Update();
相关问题