lungo in esecuzione Quando si dispone di un pulsante, e fare qualcosa di simile:Forza ridisegno prima delle operazioni
Private Function Button_OnClick
Button.Enabled = False
[LONG OPERATION]
End Function
Poi il pulsante non verrà visualizzato in grigio, perché la lunga operazione impedisce il thread UI da ridipingere il controllo. So che il design giusto è quello di avviare un thread in background/dispatcher, ma a volte è troppo complicato per una semplice operazione.
Quindi, come posso forzare il pulsante per ridisegnare in stato disabilitato? Ho provato .UpdateLayout() sul pulsante, ma non ha avuto alcun effetto. Ho anche provato System.Windows.Forms.DoEvents() che normalmente funziona quando si usano WinForms, ma non ha avuto alcun effetto.
Era abbastanza chiaro di essere a conoscenza ma non usare un Dispatcher/Backgroundworker :) – edvaldig
@edvaldig: Ho sottolineato di non usarlo, tuttavia gli ho dato il codice che cercava. Non penso che questo valga un -1 da te. Se il mio codice non funziona, dammi un -1, ma non per dare qualche consiglio in più. Non penso sia giusto. – HCL
Hai ragione, ero troppo veloce a questo proposito, commento upvote per compensare :) – edvaldig