繁体   English   中英

C#完全加载WinForm而不显示它(VS2010)

[英]C# completely loading a WinForm without showing it (VS2010)

在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中删除(或在Show中删除)。任务或Thred)。

或者,换句话说,完全按照显示时的方式完全构建了WinForm_Popup UI,但是以异步方式执行此操作(例如,在单独的Task中)。

任何想法,建议,帮助,链接,建议,技巧...任何“东西”吗?

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

public newForm()
        {
            this.Hide();
            Thread backTh = new Thread(() =>
                {
                    MainForm mf = new MainForm();
                    mf.Show();
                });
            backTh.Start();
        }

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

这样,您就可以像旋转的沙漏(1995年或更短的时间)那样告诉用户数据正在加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM