日期:2014-05-19  浏览次数:21088 次

[求助]提示的窗体怎么做?
比如添加2000条打印任务会等很长时间,想弹出一个窗体写上 "请稍候.. "等字样,主窗体仍然可以添加打印任务,完成后关掉弹出的窗体

------解决方案--------------------
多线程
或者把打印工作交给弹出的窗体做
------解决方案--------------------
参考下面的代码希望帮到你:
//运行时间较长的函数的委托定义
private delegate object someMethodDelegate(object someArg);

//运行时间较长的函数
private object someLongtimeMethod(object someArg)
{
//执行较长的操作
return someArg;
}
private void button1_Click(object sender, EventArgs e)
{
//为调用函数而声明委托的实例
someMethodDelegate sd = new someMethodDelegate(this.someLongtimeMethod);
//开始调用函数,可以带参数
IAsyncResult ir = sd.BeginInvoke( "测试参数 ", null, null);
//显示等待的窗口
Form fWait = new Form();
fWait.StartPosition = FormStartPosition.Manual;
fWait.Location = this.button1.Location;
fWait.Show(this);
//刷新这个等待的窗口
Application.DoEvents();
//循环检测是否完成了异步的操作
while (true)
{
if (ir.IsCompleted)
{
//完成了操作则关闭窗口
fWait.Close();
break;
}
}
//取函数的返回值
object retValue = sd.EndInvoke(ir);
System.Console.WriteLine(retValue);
}