使用MailMessage和SmtpClient异步方式发邮件,怎样才能用一个进度条来显示发送的进度?

解决方案 »

  1.   

    public partial class ProgressForm : Form {
    public ProgressForm(Form parent) {
    InitializeComponent();
    if(parent != null) {
    Left = parent.Left + (parent.Width - Width) / 2;
    Top = parent.Top + (parent.Height - Height) / 2;
    }
    this.Height = progressBarControl1.Height + progressBarControl1.Top * 2 + 4;
    } public void SetProgressValue(int position) {
    progressBarControl1.Position = position;
    this.Update();
    }
    }调用代码
       private void SendEmail()
            {
                StartExport();//调用进度显示form//这里是你自己的发送代码
                EndExport();//结束进度显示form
            }
            protected virtual void StartSend()
            {
                progressForm = new ProgressForm(this.MenuForm);
                progressForm.Show();
                progressForm.Refresh();
            }
            protected virtual void EndSend()
            {
                progressForm.Dispose();
                progressForm = null;
            }当然我这里只是一个等待的界面,并没有完全按实际进度显示,你看明白了完全可以自己加个函数以显示实时进度