WinForm刷新问题

时间:2010-06-30 16:17:47

标签: c# winforms

我有一个程序可以打开多个表单,当有很多表单时,它们会在打开时级联。

按下按钮时,会运行一些代码并关闭表单

this.Visible = false; Kill.Zombies(); this.Close();

My Kill.Zombies();方法需要几秒钟才能运行,因此我在运行之前使表单不可见。我遇到的问题是,即使它不可见,它背后的形式也不会刷新,就好像看不见的形状仍然是可见的。

我尝试移动表单然后使其不可见,并且它仍然存在显示在其背后的表单之上的问题。

如果你能就如何解决这个问题给我一些建议,我会很感激。

2 个答案:

答案 0 :(得分:5)

在此之后调用Application.DoEvents().Visible = false; ?

执行此操作的正确方法是多线程,但调用DoEvents()可能会修复它。

答案 1 :(得分:2)

this.Visible = false; 
MethodInvoker mk = delegate {
Kill.Zombies(); this.Close();
};
mk.BeginInvoke(null,null);

使用上面的代码。