2013-08-31 5 views
1

엑셀을 데이터 소스로 사용하는 넷 프로그램. 그런 다음이 데이터 소스로 datagridview를 채우고 datagridview를 통해 데이터 세트를 변경합니다. 변경 후 값을 업데이트 할 단추를 통해이 데이터 집합을 새로 고치는 방법을 찾으려고합니다. 내 유일한 문제는 내 새로 고침 메서드에서 타이머를 설정하려고하지만 그것은 결코 초기화/시작한다는 것입니다. 내가 왜 온라인에서 vb.net에서 타이머를 시작하는 방법을 찾았는지에서 타이머 변수를 enabled = true로 설정하는 것입니다. 디버거를 밟아서 타이머가 시작되지 않는다는 것을 알았습니다. 아래에 제 코드가 있습니다, 왜이 타이머가 시작되지 않는지 알아낼 수있는 사람이 있다면 나는 당신의 도움에 크게 감사 할 것입니다!타이머가 vb.net에서 시작되지 않음

Dim mytimer As New System.Timers.Timer 
Sub refresh() 

    write2Size() 



    mytimer.timer = New System.Timers.Timer(20000) 
    'Starting Timer 
    mytimer.Enabled = True 
    Cursor.Current = Cursors.WaitCursor 



    AddHandler mytimer.Elapsed, AddressOf OnTimedEvent 



    objworkbook.Save() 
    objExcel.ActiveWorkbook.Save() 

    myDS.Clear() 
    retrieveUpdate() 

    'Setting the cursor back to normal here 
     Cursor.Current = Cursors.Default 
    End Sub 

    Private Shared Sub OnTimedEvent(source As Object, e As ElapsedEventArgs) 

    Console.WriteLine("The Elapsed event was raised at {0}, e.SignalTime) 
    End Sub 
+0

타이머를 사용하는 위치와 타이머를 사용하지 않는 위치 사이에 생략 된 코드가 있습니까? 누락 된 코드가있는 경우 설명이있는 위치와 일반적으로 어떤 위치에 주석이 있는지 표시하십시오. 또한 타이머가 처음으로 작동하기까지는 20 초가 걸립니다. 오래 기다렸 니? – hatchet

답변

1

당신은 새로운 System.Timers.Timer 여기 어둡게을 MyTimer을 타이머를 만들하지만 당신은 당신이 새로 고침 루틴 내부에서 생성 된 것과 핸들러를 할당합니다.

은 다음

Private Shared Sub OnTimedEvent(source As Object, e As ElapsedEventArgs) 

    Console.WriteLine("The Elapsed event was raised at {0}, e.SignalTime) 
    Refresh() 
End Sub 

뭔가

Sub refresh() 

    myTimer.Enabled = False 
    // refresh the doings 
    myTimer.Enabled = True 
End sub 

변명 VBness의 부족과 같은, 나는 C#을 소년이야

Dim mytimer As New System.Timers.Timer(20000) 
AddHandler mytimer.Elapsed, AddressOf OnTimedEvent 

을 기대했을 것이다.

+0

AddHandler에 구문 오류가 있습니다. 메서드를 꺼내면 – stackexchange12

+0

formcreate 또는 show 등의 다른 메서드를 사용합니다. 요점은 타이머의 OnTimedEvent 핸들러를 처음 설정하는 코드가 필요하다는 것입니다. –