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