【发布时间】:2026-01-10 07:10:01
【问题描述】:
我有一个奇怪的问题,我似乎无法弄清楚。我有一个计时器,它每 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 应该可以解决这个问题吗?
编辑: 另外,在另一个虚拟机实例上尝试过,同样的问题仍然存在。
【问题讨论】:
-
你能贴出你用来设置按钮颜色的代码吗?
-
好的,我发布了代码。顺便说一句,如果我将它安装在计算机上,它不会改变颜色,但是当我在 VS 2010 中运行它的调试模式时,它可以工作!在同一台电脑上?我需要引用或包含某种依赖项吗?很奇怪
-
Scheduler.AutomationRunning的值是多少?看看吧。 -
除了当前答案中的代码之外,在每个
If语句之后添加更多调试,并添加一个Else也只是为了调试。如果您无法解释结果,请在此处发布。 -
一个小问题,但我不认为这是一个问题,尤其是因为它在 IDE 中工作,在设置
.Interval并连接事件之后移动buttonTimer.Start()。
标签: vb.net winforms button timer