C#datagridview每秒打印一次颜色

时间:2012-05-06 14:46:50

标签: c# datagridview

    excel = Workbook.Open("1.xls");
    sheeticerik = excel.Worksheets[0];
    for (int k = 0; k < sutun; k++)
        for (int i = 0; i < satir; i++)
        {
            string a = sheeticerik.Cells[i, k].StringValue;
            if (a.Contains("X"))
            {
                dataGridView1.Rows[x1].Cells[y1].Style.BackColor = System.Drawing.Color.Red;
                System.Threading.Thread.Sleep(1000);
                dataGridView1.Refresh();

            }
        }

我希望每秒都向datagridview打印颜色。我写了这段代码。但它不起作用。因为程序loop.countX1000第二次等待和immediatily打印颜色。没有连续打印。我能为此做什么?

解决方案[编辑]:

- 在表单中添加一个Timer控件。 (它在组件类别中)

- 将其Interval属性设置为45000(该值表示毫秒)

- 在表单设计器中或代码中的某个位置将计时器的Enabled属性设置为True。

- 为计时器的Tick事件添加一个处理程序(你可以通过双击计时器来获得这个)

- 在Tick处理程序中,更新dataGridView

private void timer1_Tick(object sender, EventArgs e)
{
    // Update DataGridView
}

并使用,timer1.Start(); ...

1 个答案:

答案 0 :(得分:1)

不要尝试在计时器上打印颜色,而是尝试在DataGridView的Render()事件期间打印颜色。您的屏幕也可能更少闪烁。