簡體   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