show dialog然后在它的OnLoad方法中调用方法

时间:2013-11-02 13:54:14

标签: winforms

我使用C#,Winforms。 从MainForm,我实例化发送电子邮件的MailSendForm对话框,send方法在其OnLoad方法中,此表单上有进度条,显示发送进度。

问题是表单没有显示,直到发送完成,显示“成功”的消息框已关闭。

有没有办法在发送开始前显示发送表单?

    //--- MainForm

    private void SendOrder(...)
    {
        var sm = new MailSendForm(...);
        sm.ShowDialog();
}


    //--- MailSendForm

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        SendEmail();
    }

    private void SendEmail()
    {
   ....

        // Send mail.
        var success = mailman.SendEmail(email);
        if (success)
        {
            MessageBox.Show("email sent successfully");
        }
        else
        {
            MessageBox.Show(mailman.LastErrorText);
        }
}


    public void mailman_OnPercentDone(object source, Chilkat.PercentDoneEventArgs args)
    {
        progressBar.EditValue = args.PercentDone;

        if (_cancelled)
        {
            args.Abort = true;
        }
        Application.DoEvents();

    }

1 个答案:

答案 0 :(得分:0)

显示的事件解决了我的问题。

谢谢EiríkurFannarTorfason。