2017-04-09 47 views
0

基本上它是一个静态登录表单。我创建了一个进度条(progressBar1),并在两个文本框(一个用于输入密码的编号为&)中输入文本。 ID和密码是硬编码的,即id =“admin”和password =“admin”。我想要的是,当我按下一个按钮(button1)时,对于两种情况,进度条应该开始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小时上努力是不正确的。

+0

只是一个好主意澄清,如果密码和用户名等于管理员,你想显示一个进度条,从5到100%,在5秒的过程中,然后你想显示另一个表单? – dotTutorials

+0

yup @dotTutorials你有我的观点:) –

+0

使用'定时器'。期。 – niksofteng

回答

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的Click事件,你会打电话

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

我没有测试过上一个编译器的代码,但它应该给你做什么