0

私は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();

    }
4

1 に答える 1

0

Shown イベントが私の問題を解決しました。

Eiríkur Fannar Torfason に感謝します。

于 2013-11-02T15:02:59.877 に答える