我们有一个在客户端运行的应用程序正在显示奇怪的行为.在白天的随机时间,某些表单上的"确定"按钮(调用Form.Close方法)不会导致表单关闭.我的意思是用户将单击按钮,在跟踪中它将显示已调用Form.Close但表单将不会关闭.
奇怪的是,表单本身仍然是响应式的,因此他们可以单击表单上的任何按钮,按钮后面的代码将执行,但表单不会关闭.
这种状态持续几秒到几分钟.然后,表格突然开始处理并消失.真奇怪.
所以回顾一下,发生以下情况:
Form.ShowDialog() - >表格显示Form.Close() 被叫 - >用户点击了关闭按钮Form.ShowDialog注意事项:
explorer.exe进程已在PC上停止,这是否会对表单的行为产生影响?我们正在安排重建PC.我的问题是,是否有人知道可能导致上述行为的情况?
我不是Forms的专家,但据我所知,当你调用时Form.Close,表单不会立即关闭,当前调用Close的方法首先完成,然后另一个进程触发表单开始关闭和处理.
这可能与explorer.exe未运行的进程有关吗?
任何见解将不胜感激.
***编辑
另请注意,我们无法复制该问题,它会在客户端随机发生.
让我想起了C# 为什么 form.Close() 不关闭表单?
在 this.Close() 行之后的按钮单击事件处理程序中是否有任何代码?
我的意思是说:
private void OKButton_Click(object sender, EventArgs e)
{
this.Close();
somecodehere <-- is there any code here? (after this.Close)
}
Run Code Online (Sandbox Code Playgroud)
因为 Form.Close 不会立即关闭表单,所以如果调用后有代码,它仍然会执行,也许这就是阻止表单关闭的原因。