0
    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秒等待并立即打印颜色。不是连续打印。我该怎么办?

解决方案[编辑]:

- 将计时器控件添加到您的表单。(它在组件类别中)

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

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

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

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

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

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

4

1 回答 1

1

与其尝试在计时器上打印颜色,不如尝试在 DataGridView 的 Render() 事件期间打印颜色。您的屏幕闪烁也可能少得多。

于 2012-05-06T15:02:47.723 回答