1

Excel をデータソースとして使用する net プログラム。次に、datagridview にこのデータソースを入力し、datagridview を介してデータセットに変更を加えます。変更後に値を更新するボタンを使用して、このデータセットを更新する方法を見つけようとしています。私の唯一の問題は、refresh メソッドでタイマーを設定しようとしていますが、初期化/開始されないことです。オンラインで見つけたものから、vb.netでタイマーを開始する方法は、タイマー変数をenabled = trueに設定することである理由がわかりません。デバッガーにステップインしたところ、タイマーが開始されないことがわかりました。以下は私のコードです。このタイマーが開始されない理由を理解できる人がいれば、助けていただければ幸いです。

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
4

1 に答える 1

1

ここでタイマーを作成しています Dim mytimer As New System.Timers.Timer ですが、Refreshルーチン内で作成したハンドラーにのみハンドラーを割り当てます。

期待しただろう

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

それから

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# 少年です。

于 2013-08-31T13:58:38.927 に答える