WindowsFormsApplicationBase.DoEvents メソッド

定義

メッセージ キューに現在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 サービス いいえ
ウェブサイト いいえ

適用対象

こちらもご覧ください