2009-05-21 2 views
1

ボタンをクリックすると、バックグラウンドワーカーでクエリが実行されます。非同期なので、ボタンを「キャンセル」に変更して、ユーザーが予想よりも長く実行された場合にプロセスをキャンセルできるようにします。これはすべて正常に動作します。.Net Windowsフォーム - 非同期作業を待つ間にフォームの移動を制限する

しかし、ユーザーがこの場所から離れてフォーム上の他の作業を行うことはできません。彼らは、キャンセルボタンをクリックするか、フォームを閉じることができなくてはならない。

+2

次回は質問の形で質問してください。 – mquander

答えて

1

これを行う最善の方法は、DisableControls()のような他のすべてのコントロールのdisableコマンドを含むメソッドを作成することです。

非同期処理が完了したら、コールバックでEnableControls()のようなメソッドを呼び出して処理を元に戻します。

6

次に、クエリの処理を開始したときにフォーム上の他のコントロールを無効にし、バックグラウンドワーカーが完了したら再度有効にすることをお勧めします。

関連する問題