Невозможно отобразить вторую форму после успешной проверки входа - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь использовать индикатор выполнения в моем приложении 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();

    }
}

1 Ответ

0 голосов
/ 20 февраля 2019
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);



    }
    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";
        Form2 f = new Form2();
        f.Show();
        Form1 d1 = new Form1();
        d1.Hide();
        this,Hide();
    }
}

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

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...