WindowsFormsApplicationBase.DoEvents メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
メッセージ キューに現在Windowsされているすべてのメッセージを処理します。
public:
void DoEvents();
public void DoEvents();
member this.DoEvents : unit -> unit
Public Sub DoEvents ()
例
この例では、 My.Application.DoEvents メソッドを使用して、 TextBox1 の UI を更新できるようにします。
Private Sub TestDoEvents()
For i As Integer = 0 To 10000
TextBox1.Text = i.ToString
My.Application.DoEvents()
Next
End Sub
このコードは、Text プロパティを持つTextBox1 コンポーネントを含む形式にする必要があります。
注釈
My.Application.DoEvents メソッドを使用すると、コードの実行中に発生する可能性がある他のイベントをアプリケーションで処理できます。
My.Application.DoEvents メソッドの動作は、DoEvents メソッドと同じです。
Windows フォーム アプリケーションを実行すると、新しいフォームが作成され、イベントが処理されるのを待機します。 ボタン クリックなどのイベントをフォームが処理するたびに、そのイベントに関連付けられているすべてのコードが処理されます。 その他のすべてのイベントは、キュー内で待機します。 コードがイベントを処理している間、アプリケーションは応答しません。 たとえば、別のウィンドウを上にドラッグしても、ウィンドウは再描画されません。
コードで My.Application.DoEvents を呼び出すと、アプリケーションは他のイベントを処理できます。 たとえば、コードがループ内の ListBox にデータを追加し、ループの各ステップの後に My.Application.DoEventsを呼び出すと、別のウィンドウがドラッグされたときにフォームが再描画されます。 コードから My.Application.DoEvents を削除した場合、ボタンのクリック イベント ハンドラーの実行が完了するまで、フォームは再描画されません。
通常、このメソッドをループで使用してメッセージを処理します。
Note
My.Application.DoEvents メソッドは、フォームとまったく同じ方法でイベントを処理しません。 マルチスレッドを使用して、フォームでイベントを直接処理します。 詳細については、「 スレッドとスレッドの使用」を参照してください。
Caution
ユーザー インターフェイス (UI) イベントを処理するメソッドが My.Application.DoEvents メソッドを呼び出した場合、メソッドは終了する前に再入力される可能性があります。 これは、My.Application.DoEvents メソッドがメッセージWindows処理し、Windowsメッセージがイベントを発生させる可能性があるために発生する可能性があります。
次の表に、 My.Application.DoEvents メソッドを含むタスクの例を示します。
| ターゲット | 参照先 |
|---|---|
| 作業中にフォームが UI 入力に応答できるようにする | チュートリアル: イベントの処理 |
プロジェクトの種類別の可用性
| プロジェクト タイプ | 在庫有り |
|---|---|
| Windows フォーム アプリケーション | Yes |
| クラス ライブラリ | いいえ |
| コンソール アプリケーション | いいえ |
| Windows フォーム コントロール ライブラリ | いいえ |
| Web コントロール ライブラリ | いいえ |
| Windows サービス | いいえ |
| ウェブサイト | いいえ |