我有一个表单程序,显示两种形式。基本上form1隐藏form2,通过创建棋盘重建它的内容,然后显示form2。如果我一步一步走,一切都很好。我想运行几个hide-rebuild-show序列,并在form2的每个显示之间短暂停顿,这样我就可以验证它是否按预期工作。如果我在每个节目后放一个msgbox,我会看到正确绘制的form2。如果我在演出结束后暂停2秒(循环无效2秒),我会看到表格的轮廓,但是棋盘应该是一个开放的空间。我认为这是某种时间问题但不知道如何解决它。什么是短暂暂停的正确方法?
private void Do1Bot()
{
SetStart();
for (int i = 1; i <= numsess; i++)
{
NextSess();
Do1Sess();
//MessageBox.Show("After do1 sess"); // Checkerboard appears in the middle of the form this way.
//Wait(2); // This way I get the form borders but a blank space in place of a checkerboard.
}
}
private void Wait(int secs)
{
DateTime Tend = DateTime.Now.AddSeconds(secs);
do { }
while (DateTime.Now < Tend);
}
答案 0 :(得分:0)
将Application.DoEvents()添加到等待循环(感谢Sam Axe)解决了这个问题。