0

在 VS 2010 之上使用 DevExpress 2012 vol 2.10 C#

第一个问题似乎还不清楚......所以让我们稍微澄清一下(或至少尝试一下)!

我们正在构建一个带有包含许多按钮的功能区的 MainForm。功能区中的每个按钮都被禁用,直到它们各自的状态为“准备启用”。“准备启用”取决于一件事:与按钮关联的 WinForm_Popup 已经完全构建,包括数据检索和 DevExpress.ExpressApp.ListView 构建。

  1. 从数据库中检索数据不到 0.1 秒
  2. 调用 WinForm_Popup.Show() 需要 15 秒以上

我们试图将其放入线程或任务中,但没有成功:它在 WinForm_Popup.Show() 上崩溃,并出现与 DragDrop 事件相关的异常。

我现在所知道的是 Show() 方法需要很长时间,但我不知道在这个方法中会发生什么,而是构建 DevExpress.ExpressApp.ListView,它应该从 Show 中取出(或者在任务或线程可能)。

或者,换句话说,将 WinForm_Popup UI 完全构建为显示时的 UI,但异步执行此操作(例如,在单独的任务中)。

任何想法、建议、帮助、链接、建议、提示……任何“事情”?

4

2 回答 2

1

制作一个新表格并使其为空。在 program.cs 文件中,将主窗体更改为新窗体。然后使新的表单构造函数如下所示:

public newForm()
        {
            this.Hide();
            Thread backTh = new Thread(() =>
                {
                    MainForm mf = new MainForm();
                    mf.Show();
                });
            backTh.Start();
        }
于 2013-06-07T16:03:26.167 回答
0

我会选择相反的方法,这种方法通常用于慢速加载系统,如网络浏览器。为什么不快速加载表单,然后使用线程填充缓慢加载的网格视图?

这样,您就可以像一个旋转的沙漏(或 1995 年更少的东西)一样告诉您的用户数据正在加载。

于 2013-06-07T19:13:46.137 回答