2012-12-07 2 views
1

1 초에서 2 분 간격으로 지나가는 시간을 보여주는 텍스트 상자가 포함 된 양식이 있습니다. 괜찮아. 그러나 게임 라운드가 끝났을 때 타이머를 멈추고 다른 양식의 버튼을 클릭하면 다시 시작해야합니다. 그래서 양식의 버튼 click 이벤트 처리기에서 timer_tick 이벤트 처리기에서 _timer.Stop()_timer.Start()이 2타이머 C# Stop()이 실제로 멈추지 않습니다.

내 문제는 타이머가 나는 다른 형태와하지에서의 버튼을 누를 때까지 얼마의 시간부터 시작이다 0:00. 어떤 아이디어?

는 타이머에 대한 코드입니다 : displayPointsOrResults()에서

private DateTime _myDateTime; 
private System.Windows.Forms.Timer _timer; 
private DateTime newDate; 

public Tournament() 
{ 
    _timer = new System.Windows.Forms.Timer(); 
    _timer.Interval = 1000; 
    _timer.Tick += Timer_Tick; 
    _myDateTime = DateTime.Now; 

    newDate = new DateTime(); 
    newDate = newDate.AddMinutes(2.00); 
    _timer.Start(); 
    InitializeComponent(); 
} 

void Timer_Tick(object sender, EventArgs e) 
{ 
     var diff = DateTime.Now.Subtract(_myDateTime); 
     this.textBox1.Text = diff.ToString(@"mm\:ss"); 

     DateTime dt = Convert.ToDateTime(diff.ToString()); 

     if (newDate.Minute == dt.Minute) 
     { 
      _timer.Stop(); 
      _myDateTime = DateTime.Now; 

      displayPointsOrResults(); 

      this.textBox1.Text = diff.ToString(@"mm\:ss"); 
     } 
    } 

내가 그렇게 점에서 또 다른 형태의 Points()의 인스턴스를 생성하고 I 버튼 (1)을 가지고 있고 나는 그것의 이벤트 처리기에서이를 형성하지 떨어져 다른 것들 타이머 관련 없음 : tournament.Timer1.Start();

토너먼트 클래스에서 타이머를 받고 다시 시작합니다.

내가 뭘 잘못하고 있니?

+0

Try _timer.Stop(); _timer.Enabled = false; – Anujith

답변

1

아, 세계적인 축성, 축복과 저주.
단추를 누를 때 _myDateTime을 DateTime으로 재설정 했습니까?

+0

나는 downvoter와 논쟁하고 싶지 않다. 그러나 문제는 정확하게 세계 병의 취급 부주의에 놓여있다. 그리고 나의 대답이 Skeet로부터의 것과 같이 잘 문서화되지는 않지만 분명히 틀리지는 않다. 아 글쎄, 계속하자 ... – Steve

2

내 문제는 타이머가 다른 양식의 단추를 누르기 전까지 얼마나 많은 시간이 지나야 시작되는지, 다시 0:00이 아니라는 것입니다.

_timer.Stop(); 
_myDateTime = DateTime.Now; 

당신은 당신이 그것을 다시 시작 지점으로 그 두 번째 줄을 이동해야합니다 : -

음 그래, 그것은 것입니다 당신이 타이머를 정지 _myDateTime를 재설정하고 있습니다.

제목이 잘못되었습니다. 타이머는 실제로 입니다. 더 이상 똑딱 거리지 않습니다. 타이머가 실제로 타이밍을 수행하지 않습니다. 내 말은 무엇인지 알면 - 그냥 이벤트 처리기를 정기적으로 호출하는 방법입니다. 문제는 이벤트 처리기 자체 내에 있습니다.

0

타이머를 중지했다가 다시 시작하면 datetime을 지금으로 설정해야합니다.

_myDateTime = DateTime.Now; 
관련 문제