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(); ...
答案 0 :(得分:1)
不要尝试在计时器上打印颜色,而是尝试在DataGridView的Render()事件期间打印颜色。您的屏幕也可能更少闪烁。