为完整进度条编写If语句

时间:2017-04-09 11:27:21

标签: c# progress-bar

基本上是一个静态登录表单。我创建了一个进度条(progressBar1),然后在2个文本框中输入文本(一个用于id,一个用于密码)。 ID和密码是硬编码的,即id =" admin"和密码=" admin"。我想要的是,当我按下一个按钮(按钮1)时,进度条应该开始5秒,对于以下两种情况:如果输入的ID和密码是正确的,那么当进度条达到最大值时它应该显示另一个表格,否则就是messageBOX应该说进度条达到最大长度后输入的信息不正确

private void button1_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "admin" && textBox2.Text == "admin")
        {
            form2 f2 = new form();
            this.Hide();
            f2.Show();
        }
    }

现在,请帮助我如何执行该代码,因为我已经浪费了10个小时的尝试。

1 个答案:

答案 0 :(得分:1)

您可以使用计时器来增加进度条。 假设您的表单的构造函数名为Form1。

private Timer m_Timer;

private Form1() { // constructor
    m_Timer = new Timer(500); // updates progressbar every 500 ms
    progressBar1.Maximum = 5000; // MaxValue is reached after 5000ms
    m_Timer.Elapsed += async (s, e) => await mTimerTick();
}

private async Task mTimerTick() {
        progressBar1.Value += m_Timer.Interval;
        if (progressBar1.Value >= progressBar1.Maximum) {
            m_Timer.Stop();
            this.Hide();
            var f2 = new Form();
            f2.Show();
        }
}

您可以通过按钮1的点击事件调用

private void button1_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "admin" && textBox2.Text == "admin")
        {
            m_Timer.Start();
        }
    }

我没有在编译器上测试过这段代码,但它应该让你知道该怎么做