Private Function Button_OnClick
Button.Enabled = False
[LONG OPERATION]
End Function
長い操作はコントロールを再描画からUIスレッドを防ぐため、その後のボタンは、グレー表示されません。バックグラウンドスレッド/ディスパッチャを起動するのが正しい設計だとわかっていますが、単純な操作ではあまりにも面倒です。
ボタンを無効状態で強制的に再描画するにはどうすればよいですか? Buttonで.UpdateLayout()を試みましたが、効果がありませんでした。私はまた、WinFormsを使用しているときに正常に動作するSystem.Windows.Forms.DoEvents()を試しましたが、何の効果もありませんでした。
彼はディスパッチャー/バックグラウンドワーカーを認識しているが、ディスパッチャー/バックグラウンドワーカーを使用していないことはかなり明確です。 – edvaldig
@edvaldig:私はそれを使用しないように下線を引いていますが、私はこれがあなたから-1の価値があるとは思わない。私のコードがうまくいかなければ、-1を与えてください。しかし、いくつかのアドバイスを与えるのではありません。私はこれが公正だとは思わない。 – HCL
あなたが正しいです、私はそれについて、あまりにも速かったコメントするためにアップヴォートを補足してください:) – edvaldig