我有一个功能需要大约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 :(得分: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
class:
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
}