2010-07-29 3 views
3

누구나 Windows Forms 응용 프로그램에 시간 제한 기능을 구축하는 방법을 알고 있습니다.Windows 양식 응용 프로그램에서 '시간 초과'기능 설정

응용 프로그램은 이벤트에 의해 구동되지만, 어떻게 든 타이머를 사용하여 10 분 동안 카운트 다운을 생각하고 타이머 틱에서 사용자를 타임 아웃합니다.

문제는 마우스를 움직이거나 클릭 할 때마다 타이머를 어떻게 재설정 할 수 있습니까?

도움을 주시면 감사하겠습니다.

건배

답변

1

System.Windows.Forms.Timer을 사용할 수 있습니다.

도구 상자에서 디자이너 화면으로 끌어 놓을 수 있습니다.

속성 창을 사용하여 Interval 속성을 원하는 시간 범위 (밀리 초)로 설정하고 Enabled 속성을 false로 설정해야합니다.

for the load는 타이머 Enabled을 true로 설정합니다.

(샘플의 이벤트 핸들러는 C# .NET을 사용하여 작성 - 미안)

private void Form1_Load(object sender, EventArgs e) { timer1.Enabled = true; }

더블 이벤트에 등록하고, 타이머 틱

의 양식을 닫습니다 타이머 틱 이벤트를 클릭 보인다만큼 나쁜

private void timer1_Tick(object sender, EventArgs e) { Close(); }

+0

모달 양식은 어떻게 작동합니까? –

+0

만약 'modal'에 의해'ShowDialog'을 의미하고 메인 윈도우 ('Application.Run'에있는 것)에서이 코드를 구현하면 대답은 - 예입니다. 모든 모달 창이 닫힙니다. –

+0

화려한, 고마워. –

0

timer.Interval을 0으로 설정하면 작동하지 않습니까?

Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove 
    Me.Timer1.Stop() 
    Me.Timer1.Start() 
End Sub 
+0

안녕하세요 그리고 어디서 타이머를 다시 시작할까요? –

+0

또한 모달 양식이 여러 곳에있는 경우 어떻게 작동합니까? –

+0

코드를 편집했습니다 – Florian

0

, 나는 그것을위한 가장 좋은 방법은 기껏해야 몇 밀리 초 설정된 간격으로 system.timer 객체를 사용하는 것입니다 생각합니다.

내가 한 번 본 것은 전역 변수를 사용하여 마지막 작업 시간을 가져오고 작업이 수행 될 때마다 변수가 Now (예 : 전역 함수 사용)로 설정됩니다. 타이머 경과 이벤트에서 마지막 동작이 10 분 제한으로 커지면 그에 따라 작동하는지 확인합니다.

멀티 폼 앱의 경우 각 양식마다 다른 타이머를 사용하거나 메인 폼에서만 타이머를 실행할 수 있습니다.

희망이 있습니다.

관련 문제