按钮颜色变化不适用于其他电脑

问题描述:

我有一个奇怪的问题,我似乎无法弄清楚。我有一个计时器每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上都应该正确地处理这个问题?

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

+1

你可以发布你正在使用设置密码:

你应该加入一些错误处理得到更多的线索按钮颜色? – 2013-02-21 16:48:50

+0

好的,我发布了代码。顺便说一句,如果我将它安装在计算机上,它不会改变颜色,但是当我在VS 2010中运行调试模式时,它可以工作!在同一台计算机上?我需要引用还是包含某种依赖关系?很奇怪 – Cerealkiller050 2013-02-21 18:28:38

+0

'Scheduler.AutomationRunning'的值是什么?一探究竟。 – RoadBump 2013-02-21 18:44:35

@RoadBump是正确的。如果SchedulerNothing,会发生什么情况?

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 

所以,如果您的按钮变为红色,那么你需要启动一些进一步的调查