我有一个应用程序,我需要在某些操作上显示加载表单。所以,我有一个打开表单的按钮,当我点击这个按钮时,我需要显示我的加载表单。我使用以下代码:
private void diligênciasToolStripMenuItem1_Click(object sender, EventArgs e)
{
LoadingWindow loadingWindow = new LoadingWindow();
try
{
loadingWindow.Show();
Cursor.Current = Classe_Cursor.LoadCustomCursor(@"D:\Wait (1).ani");
FormConsultaDiligencia Childform = new FormConsultaDiligencia();
Childform.MdiParent = this;
Childform.Show();
Cursor.Current = Cursors.Default;
loadingWindow.Close();
}
catch (Exception ex)
{
MessageBox.Show("" + ex.Message);
}
}
当我单击此按钮时,LoadingWindow会打开,但我在表单中的项目不起作用:
所有看似空白,看起来像是:
这里发生了什么?我无法独自到达那里,有人可以向我解释这是什么问题吗?
答案 0 :(得分:2)
这是因为您显示表单并对GUI线程执行延长的操作。您应该在backgroung线程中执行此操作。 编辑:已删除代码。
答案 1 :(得分:0)
在istruction loadingWindow.Show()之后,clickWindow挂起,看起来没有填充组件。
用户关闭loadingWindow后,代码从Cursor.Current = Classe_Cursor.LoadCustomCursor(@" D:\ Wait(1).ani")重启。
istruction loadingWindow.Close()是一个错误:此时loadingWindow已经关闭。
我猜你必须在loadingWindow的构造函数中加载动画和字符串。
无论如何,我认为您需要使用线程来执行Childform的创建。最后,该线程将向loadingWindow发送一个关闭请求并开始显示Childform。
adv12提出的解决方案将是您的灵魂。