2017-04-09 17 views
0

基本的に静的なログインフォームです。進捗バー(progressBar1)を作成し、2つのテキストボックスにテキストを入力します(IDは&、パスワードは1つ)。 IDとパスワードはハードコードされています(例:id = "admin"、password = "admin")。私が欲しいのは、ボタン(button1)を押すとプログレスバーが5秒間始まるということです。入力されたIDとパスワードが正しい場合は、プログレスバーが最大に達したときに別のフォームを表示し、そうでなければmessageBOXそれは、プログレスバーが完全なプログレスバーのIf文の記述

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

をどうするかの良いアイデアを与える必要があり

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

を呼ぶだろうパスワードとユーザー名がadminの場合、別のフォームを表示したい場合は、5秒間に0〜100%の進行状況バーを表示しますか? – dotTutorials

+0

yup @dotチュートリアルあなたの意見があります:) –

+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のクリックイベントから、私は、コンパイラにこのコードをテストしていませんが、それはあなただけ

関連する問題