我有两个简单的表格,一个包含一个网格和一个按钮。当我点击按钮时,我的应用程序开始执行长时间操作。在它工作的同时,我显示另一个包含进度条的表格。我这样打开它:
_busyWindow.ShowDialog();
并定义
public partial class BusyWindow : DevExpress.XtraEditors.XtraForm
{
public BusyWindow()
{
InitializeComponent();
}
private void BusyWindow_FormClosing(object sender, FormClosingEventArgs e)
{
this.Hide();
e.Cancel = true; // this cancels the close event.
}
}
当操作完成后,我会这样隐藏表单:
if (ended)
_busyWindow.Hide();
它可以正常工作。问题在于,当我关闭第二个表格(使用相同的关闭代码)时,它也能够正常关闭,但是我的主要GUI失去了焦点。例如,如果我在应用程序后面打开Firefox,则Firefox会获得焦点。
只有在打开了busyWindow并关闭第二个表单时才会发生这种情况,而不是没有打开时(即,如果我打开表单,然后在不点击按钮的情况下关闭它,则主GUI不会失去焦点)。
您知道发生了什么或者我应该在哪里搜索吗?