Я пытаюсь использовать индикатор выполнения в моем приложении Windows Form. При успешном завершении приложение проверяет учетные данные, отображает другую форму, но не может ее отобразить, поскольку должно отображаться, что не отображает никакого контента, и после несколькихмоменты он возвращает меня к первоначальной форме Кнопка отмены также не работает, плз, кто-нибудь может дать мне решение этой проблемы
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
if(textBox1.Text == "Abrar" && textBox2.Text=="abrar")
{
//progressBar1.Visible = true;
backgroundWorker1.ReportProgress(i);
Thread.Sleep(3000);
backgroundWorker1.ReportProgress(i * 2);
Thread.Sleep(3000);
backgroundWorker1.ReportProgress(i * 3);
Thread.Sleep(3000);
backgroundWorker1.ReportProgress(i * 4);
Form2 f = new Form2();
f.Show();
Form1 d1 = new Form1();
d1.Hide();
}
if(backgroundWorker1.CancellationPending)
{
e.Cancel = true;
backgroundWorker1.ReportProgress(0);
return;
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if(e.Cancelled)`enter code here`
{
label3.Text = "Cancelled";
}
else
{
label3.Text = "Login Successful";
}
}
private void Login_Click(object sender, EventArgs e)
{
if(!backgroundWorker1.IsBusy)
{
backgroundWorker1.RunWorkerAsync();
}
else if(backgroundWorker1.IsBusy)
{
label3.Text = "Process is running";
}
}
private void Form1_Load(object sender, EventArgs e)
{
// progressBar1.Visible = false;
}
private void Cancel_Click(object sender, EventArgs e)
{
if(backgroundWorker1.IsBusy)
{
backgroundWorker1.CancelAsync();
}
}