当你有一个按钮,执行如下操作:
当你有一个按钮,执行如下操作:
Private Function Button_OnClick
Button.Enabled = False
[LONG OPERATION]
End Function
那么按钮将不会变灰,因为长时间的操作阻止了UI线程重新绘制控件。我知道正确的设计是启动一个后台线程/调度程序,但有时对于简单的操作来说这太麻烦了。
那么如何强制禁用状态下的按钮重新绘制呢?我尝试在按钮上使用.UpdateLayout(),但没有任何效果。我还尝试了System.Windows.Forms.DoEvents(),这通常在使用WinForms时有效,但它也没有效果。