2017-04-09 3 views
0

기본적으로 정적 로그인 양식입니다. 진행 막대 (progressBar1)를 만들었고 2 개의 텍스트 상자에 텍스트를 입력했습니다 (하나는 암호 &입니다). ID와 비밀번호는 하드 코딩되어 있습니다 (예 : id = "admin"및 password = "admin"). 내가 원하는 것은 버튼 (button1)을 누르면 진행률 표시 줄이 5 초 동안 시작되어야한다는 것입니다 : 입력 된 ID와 암호가 정확하면 진행률 표시 줄이 최대 값에 도달하면 다른 양식이 표시되고 그렇지 않으면 messageBOX 진행 표시 줄이 지금은 시도에 10 시간 낭비로 내가 그 코드를 할 수있는 방법 좀 도와주세요 최대 길이전체 진행 표시 줄에 대한 If 문 작성

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

에 도달 한 후 그 정보를 입력 말을해야하는 것은 올바르지 않습니다.

+0

그냥 작업을 수행하는 것에 대한 좋은 아이디어를 줄 것이다 암호와 사용자 이름이 admin 인 경우 다른 양식을 표시하려는 후 5 초 동안 0에서 100 %까지 진행률 표시 줄을 표시 하시겠습니까? – dotTutorials

+0

멍청한 @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(); 
     } 
} 

그리고 당신을 button1의 클릭 이벤트에서 당신은 내가 컴파일러에이 코드를 테스트하지 않았습니다

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

를 부를 것이다, 그러나 그것은 당신에게

관련 문제