Принудительно перерисовать перед длительные операции

Когда у вас есть кнопка, и вы выполняете что-то вроде:

Private Function Button_OnClick

    Button.Enabled = False

    [LONG OPERATION] 

End Function

Тогда кнопка не будет серой, потому что длительная операция не позволяет потоку пользовательского интерфейса перерисовывать элемент управления. Я знаю, что правильное решение - запустить фоновый поток / диспетчер, но иногда это слишком сложно для простой операции.

Так как мне заставить кнопку перерисовываться в отключенном состоянии? Я попробовал .UpdateLayout () на кнопке, но это не дало никаких результатов. Я также пробовал System.Windows.Forms.DoEvents (), который обычно работает при использовании WinForms, но также не дал никакого эффекта.

7
задан slugster 26 June 2014 в 01:00
поделиться