2012-10-28 9 views
2

특정 프로세스의 동작과 함께 진행률 막대를 sincronize하여 해당 프로세스가 끝날 때까지 다시 시간을 알 수 있습니까?VB에서 sincronizing 진도 표시 줄

예를 들어이 코드 만 찾았지만 프로세스 (버튼으로 시작한 것)가 진행률 막대가 최대 값에 도달하기 전에 완료되기 때문에 쓸모가 없습니다.


버튼 이벤트 : 당신은 프로세스의 소요 시간을 추정하는 합리적인 방법이 없으며, 매우 드문 경우

Timer1.enabled = true 

If ProgressBar1.Value < 100 Then 
      ProgressBar1.Value += 1 
     ElseIf ProgressBar1.Value = ProgressBar1.Maximum Then 
      Timer1.Stop() 
      MsgBox("finish") 
     End If 
+0

ProgressBar가 어떻게 업데이트되고 있습니까? 그냥 타이머로? – DerMike

+0

@DerMike 예, 단순히 타이머에 의해 실행되는 프로세스와 완전히 연결이 끊어졌습니다. – Aurelius

+0

프로세스가 진행률 표시 줄을 설정할 수 없습니까? (글쎄, 왜 * 왜?) – DerMike

답변

1

당신이 할 것을 프로세스 자체가 진행 표시를 제공하지 않으면 정확한 진행 표시를 합리적으로 표시 할 수 없습니다.

그래서 시도하지 마라. 컨트롤의 Style 속성을 Marquee로 설정한다. 프로세스를 시작할 때 표시하고 완료되면 숨 깁니다.

0

진행 상황을 표시 할 때 타이머를 사용하는 것이 최선의 방법은 아닙니다. 실행 시간은 기계마다 다를 수 있습니다.

과정 내에서 ProgressBar1을 업데이트하는 방법을 찾아야합니다.

관련 문제