1

net 程序,它使用 excel 作为数据源。然后我用这个数据源填充一个datagridview,并通过datagridview 对数据集进行更改。我正在尝试找到一种通过按钮刷新此数据集的方法,该按钮将在更改后更新值。我唯一的问题是我试图在我的刷新方法中设置一个计时器,但它从未初始化/启动。我不知道为什么,从我在网上找到的在 vb.net 中启动计时器的方法是将计时器变量设置为启用 = 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 回答