btn_Connect を押すと、backgroundworker が表示されますが、メッセージボックスで [OK] をクリックするとメッセージボックスが表示され、再度実行されてメッセージボックスが再度表示されます。 btn_Connect をもう一度クリックすると、同じことが行われ、最初のクリックが 2 回インクリメントされます。 btn_Connect を 2 回クリックすると、メッセージボックスが 3 回表示されます。これを修正する方法、
これが私のコードです:
private void testConnection()
{
backgroundWorker.ReportProgress(15);
txt.createConnectionFile(txtServerName.Text, txtDatabase.Text, txtUserName.Text, txtPassword.Text);
backgroundWorker.ReportProgress(30);
cn.createConnection();
backgroundWorker.ReportProgress(60);
try
{
backgroundWorker.ReportProgress(80);
cn.openConnection();
MessageBox.Show("Connected!", "Connection Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
backgroundWorker.ReportProgress(100);
}
private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar.Value = e.ProgressPercentage;
}
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
testConnection();
}
private void btnConnect_Click(object sender, EventArgs e)
{
progressBar.Visible = true;
backgroundWorker.WorkerReportsProgress = true;
backgroundWorker.WorkerSupportsCancellation = true;
backgroundWorker.ProgressChanged += backgroundWorker_ProgressChanged;
backgroundWorker.DoWork += backgroundWorker_DoWork;
backgroundWorker.RunWorkerAsync();
}