0

理解できないような奇妙な問題があります。3 秒ごとに実行されるタイマーがあり、保留中のスケジュールがあるか、スケジュールがないか、現在実行中のスケジュールがあるかによって、ボタンの色がそれぞれ黄色、黒、または緑に変わります。

デバッグ モードに入ってスケジュールを追加したり、実行したりすると、コンピューターで正常に動作し、本来の色に変わります。このプログラムを仮想マシンに置き、同じデータ パラメータで同じスケジュールを作成しましたが、ボタンの色が変わりません。両方のマシンに .net 4.0 がインストールされています。

Public Sub createTimer()

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

createTimer() は、ページが読み込まれるときに runonce 関数から呼び出されます。

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 に答える