0

我有一个奇怪的问题,我似乎无法弄清楚。我有一个计时器,它每 3 秒运行一次,并将按钮颜色更改为黄色、黑色或绿色,具体取决于是否有待处理的计划、没有计划或当前正在运行的计划。

当我进入调试模式并添加计划或运行一次时,它在我的计算机上运行良好,它会改变颜色。我把这个程序放到一个虚拟机上,用同样的数据参数做了同样的计划,但是按钮没有改变颜色。我在两台机器上都安装了 .net 4.0。

Public Sub createTimer()

        buttonTimer = New Timer()
        buttonTimer.Start()
        buttonTimer.Interval = 3000
        AddHandler buttonTimer.Tick, AddressOf buttonTimer_Tick

加载页面时,从 runonce 函数调用 createTimer()。

Public Sub buttonTimer_Tick(sender As Object, e As EventArgs)

  If Scheduler.AutomationRunning = True Then
       btnAutoStartMenu.ForeColor = Color.Green
  ElseIf Scheduler.AutomationRunning = False And Automation.ScheduleList.Count > 0 Then
       btnAutoStartMenu.ForeColor = Color.Yellow
  ElseIf Scheduler.AutomationRunning = False And Automation.ScheduleList.Count = 0 Then
       btnAutoStartMenu.ForeColor = Color.Black
  End If

我想知道它可能是我未包含在安装程序中的 dll 吗?但是颜色变化似乎很容易内置到 .net 框架中,所以在两者上都有 4.0 应该可以解决这个问题吗?

编辑:另外,在另一个虚拟机实例上尝试过,同样的问题仍然存在。

4

1 回答 1

0

@RoadBump 是正确的。如果Scheduler是会发生什么Nothing

您应该通过添加一些错误处理来获得更多线索:

Try
    If Scheduler.AutomationRunning = True Then
       btnAutoStartMenu.ForeColor = Color.Green
    ElseIf Scheduler.AutomationRunning = False And Automation.ScheduleList.Count > 0 Then
       btnAutoStartMenu.ForeColor = Color.Yellow
    ElseIf Scheduler.AutomationRunning = False And Automation.ScheduleList.Count = 0 Then
       btnAutoStartMenu.ForeColor = Color.Black
    End If
Catch ex as Exception
    btnAutoStartMenu.ForeColor = Color.Red
End Try

因此,如果您的按钮变红,那么您需要开始进一步调查

于 2013-02-22T10:24:04.387 回答