在这个WinForms项目中,我有一个InfoForm弹出2秒的特定信息表单()然后消失.我这样做的方法是打电话
infoForm.Show();
Run Code Online (Sandbox Code Playgroud)
然后在里面,InfoForm我有一个Timer2秒后打勾并打电话Close().
现在,有时还ErrorForm需要另一种形式我需要以模态方式(使用errorForm.ShowDialog())显示,以通知用户发生了错误,并且他们需要先单击"确定"才能继续.这可能发生在InfoForm打开和关闭时,一个不应该影响另一个.
但确实如此.
我已经走了一个断点来调用ShowDialog,如果在InfoForm我点击断点时打开,那么当我点击"Step Over"时,而不是弹出ErrorForm并等待我点击"好了",调试器刚刚跨过该行并且已经在下一行,就好像表单永远不会打开一样.同时在后台InfoForm关闭,所以如果我将执行点重置为调用ErrorForm.ShowDialog(),然后"Step Over",表单会出现预期,并等待我单击"OK"然后再转到下一个语句.
删除断点并写入调试日志证实了我的怀疑,即关闭它InfoForm导致我ErrorForm不合时宜地关闭:
Thread 09 - 2011/12/14 16:39:30.574 - 显示的信息表
Thread 09 - 2011/12/14 16:39:31.300 - 在ErrorForm.ShowDialog之前
Thread 09 - 2011/12/14 16:39:32.584 - Timer Tick
Thread 09 - 2011/12/14 16:39:32.585 - 信息表格结束
Thread 09 - 2011/12/14 16:39:32.593 - 关闭时出错
Thread 09 - 2011/12/14 16:39:32.593 - 在ErrorForm.ShowDialog之后
为什么会发生这种情况,治愈方法是什么?
| 归档时间: |
|
| 查看次数: |
429 次 |
| 最近记录: |