显示加载表格

时间:2014-12-18 14:08:46

标签: c# winforms visual-studio visual-studio-2012

我有一个应用程序,我需要在某些操作上显示加载表单。所以,我有一个打开表单的按钮,当我点击这个按钮时,我需要显示我的加载表单。我使用以下代码:

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会打开,但我在表单中的项目不起作用: enter image description here

所有看似空白,看起来像是:

enter image description here

这里发生了什么?我无法独自到达那里,有人可以向我解释这是什么问题吗?

2 个答案:

答案 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提出的解决方案将是您的灵魂。