形式有时会赢';不要躲在最后一个街区
本文关键字:最后一个街 | 更新日期: 2023-09-27 18:28:16
在我的winform应用程序中,我有一个用于显示"Please wait…"的表单消息以及进度条或一些文本。出于性能原因,Form是一个使用BringToFront()、Show()和Refresh()打开的单例,并使用Hide()关闭。
我正在使用try。。。最后用图案来显示此表单并将其隐藏。
try
{
WaitForm.Display();
// Some code
}
finally
{
WaitForm.Hide();
}
在极少数情况下,用户报告表单没有关闭。你能想出表格不关闭的原因吗?发生这种情况时,用户界面会做出响应。
通常,在windows应用程序中,对于任何UI刷新,都需要运行其主消息循环。因此,在您的情况下,如果在这个代码块之后发生了任何紧循环/处理,那么表单可能不会立即被隐藏。
也许,您可以在代码块之后生成UI线程,以便刷新UI。例如,
try
{
WaitForm.Display();
// Some code
}
finally
{
WaitForm.Hide();
Application.DoEvents();
}