所以我得到了这段代码。 (currPosX定义较早)当循环条件为日期时,图形不绘制。 c#,winForms
while (earliestDate < DateTime.Today)
{
currPosX = currPosX + 5;
e.Graphics.DrawLine(Pens.Black, currPosX, 0, currPosX, 10);
earliestDate = earliestDate.AddDays(1);
}
图形不绘制。这真的很奇怪,因为只有当条件语句是日期比较时才会发生这种情况。我进行了调试,并且它在循环中进行,并且值与(例如currPosX)混淆。但是,没有显示。如果我在循环中添加一个MessageBox.Show(“blabla”),弹出消息框,并绘制图形,那么还有一点奇怪。这里发生了什么?
编辑:只是为了提醒你们,当它是非日期时间条件,它的工作原理。这意味着这段代码有效。它确实显示了一系列行
int i = 0;
while(i < 10)
{
currPosX = currPosX + 5;
e.Graphics.DrawLine(Pens.Black, currPosX, 0, currPosX, 10);
i++;
}
是,可见区域。是的,在Paint事件中。无效或刷新不起作用,没有任何反应。我不知道UI线程是什么。我不知道控制风格是什么。检查我的编辑 – jello 2010-03-31 04:03:31
我更新了我的答案以回应您的编辑。 – Josh 2010-03-31 06:05:48
我用你的#1解决方案,它的工作原理。 thx – jello 2010-03-31 19:11:29