2014-10-01 65 views
-5

我有一個需要大約5秒才能完成的功能,我想在功能運行時顯示「等待」消息。在執行動作時顯示「等待」消息

這裏是我的代碼:

if (puntos_rectangulos_estereotaxia.Count == 4) 
{ 
    generar_puntos_rectangulo_por_imagen(); //This takes 5 seconds 
} 

我怎麼能顯示與文本彈出窗口中的「等待」?我試過一個消息框,但我的功能不運行,直到用戶點擊「OK」,因此,必須有另一種方式來做到這一點..

private void generar_puntos_rectangulo_por_imagen() 
{ 
    Point Inicial_izquierdo_inf = new Point(puntos_rectangulos_estereotaxia[0].X, puntos_rectangulos_estereotaxia[0].Y); 
    Point Inicial_derecho_sup = new Point(puntos_rectangulos_estereotaxia[1].X, puntos_rectangulos_estereotaxia[1].Y); 
    Point Final_izquierdo_inf = new Point(puntos_rectangulos_estereotaxia[2].X, puntos_rectangulos_estereotaxia[2].Y); 
    Point Final_derecho_sup = new Point(puntos_rectangulos_estereotaxia[3].X, puntos_rectangulos_estereotaxia[3].Y); 

    puntos_rectangulos_estereotaxia.Clear(); 
    int wu = 24; 

    for (int i = 0; i < img.Count; ++i) 
    { 
     // Time consuming calculations 
    } 
} 
+0

的WinForms?檢查出來[BackgroundWorker](http://msdn.microsoft.com/en-us/library/cc221403(v = vs.95).aspx) – jayvee 2014-10-01 14:36:42

+0

我這個方法唯一的問題是,我有3或4時間消耗所以我需要爲每個人創建3或4個後臺工作人員,對嗎? – Matias 2014-10-01 21:57:59

回答

0

上添加一個新的形式到您的項目並寫入Wait,然後在需要向用戶顯示等待消息時顯示該表單。

例如,您的新表單名稱是PopUp。該方法前創建它的實例,後來處置它:

if (puntos_rectangulos_estereotaxia.Count == 4) 
{ 
    PopUp popup = new PopUp(); //create instance 
    popup.Show(); //display popup 

    generar_puntos_rectangulo_por_imagen(); //This takes 5 seconds 

    popup.Dispose(); //close popup 
} 

附加:

您還可以更新顯示的消息。在Popup類創建方法:

public void SetMessage(string message) 
{ 
    this.lblMessage.Text = message; 
} 

調用:

if (puntos_rectangulos_estereotaxia.Count == 4) 
{ 
    PopUp popup = new PopUp(); //create instance 
    popup.SetMessage("Wait ! It'll take few seconds to complete."); //set message 
    popup.Show(); //display popup 

    generar_puntos_rectangulo_por_imagen(); //This takes 5 seconds 

    popup.Dispose(); //close popup 
} 
+0

謝謝!我想我可以擺脫這種新形式的最大化/最小化按鈕,以及調整它(居中等)。非常感謝您的回答! – Matias 2014-10-01 21:24:54

+0

您也可以在顯示時更改信息。我爲答案增加了一些解釋。 – Shaharyar 2014-10-02 04:15:42