Application.DoEvents メソッド
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)


Windows フォームを実行すると、新しいフォームが作成され、フォームはイベントが処理されるまで待機します。フォームがイベントを処理するたびに、イベントに関連付けられたコードがすべて処理されます。その他のイベントはすべてキュー内で待機します。コードでイベントを処理している間は、アプリケーションによる応答はありません。たとえば、ウィンドウを別のウィンドウの上にドラッグする場合は、ウィンドウは再描画されません。
コード内で DoEvents を呼び出すと、アプリケーションで他のイベントを処理できます。たとえば、データを ListBox に追加するフォームの場合、DoEvents をコードに追加すると、フォームに別のウィンドウをドラッグした場合にフォームは再描画されます。コードから DoEvents を削除した場合は、ボタンの Click イベント ハンドラが実行を完了するまでフォームは再描画されません。
Visual Basic 6.0 とは異なり、DoEvents メソッドは、Thread.Sleep メソッドを呼び出しません。
通常は、ループでこのメソッドを使用してメッセージを処理します。
![]() |
---|

DoEvents メソッドを使用するコード例を次に示します。このコードを実行すると、ユーザーは OpenFileDialog からグラフィックス ファイルを選択できます。選択したファイルはフォームに表示されます。DoEvents メソッドの働きにより、フォームは開かれるグラフィックス ファイルごとに再描画されます。この例を実行するには、PictureBox1 という名前の PictureBox、OpenFileDialog1 という名前の OpenFileDialog、および fileButton という名前のボタンが配置されているフォームに次のコードを貼り付けます。次に、フォームのコンストラクタまたは Load メソッドから、InitializePictureBox メソッドと InitializeOpenFileDialog メソッドを呼び出します。またこの例では、Button コントロールの Control.Click イベントおよび OpenFileDialog の FileOk イベントが、この例で定義されているイベント ハンドラに関連付けられている必要があります。このコードの実行を開始したら、ボタンをクリックしてダイアログ ボックスを表示します。
Private Sub InitializePictureBox() Me.PictureBox1 = New System.Windows.Forms.PictureBox Me.PictureBox1.BorderStyle = _ System.Windows.Forms.BorderStyle.FixedSingle Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage Me.PictureBox1.Location = New System.Drawing.Point(72, 112) Me.PictureBox1.Name = "PictureBox1" Me.PictureBox1.Size = New System.Drawing.Size(160, 136) Me.PictureBox1.TabStop = False End Sub Private Sub InitializeOpenFileDialog() Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog ' Set the file dialog to filter for graphics files. Me.OpenFileDialog1.Filter = _ "Images (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*" ' Allow the user to select multiple images. Me.OpenFileDialog1.Multiselect = True Me.OpenFileDialog1.Title = "My Image Browser" End Sub Private Sub fileButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles FileButton.Click OpenFileDialog1.ShowDialog() End Sub ' This method handles the FileOK event. It opens each file ' selected and loads the image from a stream into PictureBox1. Private Sub OpenFileDialog1_FileOk(ByVal sender As Object, _ ByVal e As System.ComponentModel.CancelEventArgs) _ Handles OpenFileDialog1.FileOk Me.Activate() Dim file, files() As String files = OpenFileDialog1.FileNames ' Open each file and display the image in PictureBox1. ' Call Application.DoEvents to force a repaint after each ' file is read. For Each file In files Dim fileInfo As System.IO.FileInfo = New System.IO.FileInfo(file) Dim fileStream As System.IO.FileStream = fileInfo.OpenRead() PictureBox1.Image = System.Drawing.Image.FromStream(fileStream) Application.DoEvents() fileStream.Close() ' Call Sleep so the picture is briefly displayed, 'which will create a slide-show effect. System.Threading.Thread.Sleep(2000) Next PictureBox1.Image = Nothing End Sub
private void InitializePictureBox() { this.PictureBox1 = new System.Windows.Forms.PictureBox(); this.PictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; this.PictureBox1.Location = new System.Drawing.Point(72, 112); this.PictureBox1.Name = "PictureBox1"; this.PictureBox1.Size = new System.Drawing.Size(160, 136); this.PictureBox1.TabIndex = 6; this.PictureBox1.TabStop = false; } private void InitializeOpenFileDialog() { this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog(); // Set the file dialog to filter for graphics files. this.OpenFileDialog1.Filter = "Images (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|" + "All files (*.*)|*.*"; // Allow the user to select multiple images. this.OpenFileDialog1.Multiselect = true; this.OpenFileDialog1.Title = "My Image Browser"; } private void fileButton_Click(System.Object sender, System.EventArgs e) { OpenFileDialog1.ShowDialog(); } // This method handles the FileOK event. It opens each file // selected and loads the image from a stream into PictureBox1. private void OpenFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e) { this.Activate(); string[] files = OpenFileDialog1.FileNames; // Open each file and display the image in PictureBox1. // Call Application.DoEvents to force a repaint after each // file is read. foreach (string file in files ) { System.IO.FileInfo fileInfo = new System.IO.FileInfo(file); System.IO.FileStream fileStream = fileInfo.OpenRead(); PictureBox1.Image = System.Drawing.Image.FromStream(fileStream); Application.DoEvents(); fileStream.Close(); // Call Sleep so the picture is briefly displayed, //which will create a slide-show effect. System.Threading.Thread.Sleep(2000); } PictureBox1.Image = null; }
void InitializePictureBox() { this->PictureBox1 = gcnew System::Windows::Forms::PictureBox; this->PictureBox1->BorderStyle = System::Windows::Forms::BorderStyle::FixedSingle; this->PictureBox1->SizeMode = PictureBoxSizeMode::StretchImage; this->PictureBox1->Location = System::Drawing::Point( 72, 112 ); this->PictureBox1->Name = "PictureBox1"; this->PictureBox1->Size = System::Drawing::Size( 160, 136 ); this->PictureBox1->TabIndex = 6; this->PictureBox1->TabStop = false; } void InitializeOpenFileDialog() { this->OpenFileDialog1 = gcnew System::Windows::Forms::OpenFileDialog; // Set the file dialog to filter for graphics files. this->OpenFileDialog1->Filter = "Images (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|" + "All files (*.*)|*.*"; // Allow the user to select multiple images. this->OpenFileDialog1->Multiselect = true; this->OpenFileDialog1->Title = "My Image Browser"; } void fileButton_Click( System::Object^ sender, System::EventArgs^ e ) { OpenFileDialog1->ShowDialog(); } // This method handles the FileOK event. It opens each file // selected and loads the image from a stream into PictureBox1. void OpenFileDialog1_FileOk( Object^ sender, System::ComponentModel::CancelEventArgs^ e ) { this->Activate(); array<String^>^ files = OpenFileDialog1->FileNames; // Open each file and display the image in PictureBox1. // Call Application.DoEvents to force a repaint after each // file is read. for each ( String^ file in files ) { System::IO::FileInfo^ fileInfo = gcnew System::IO::FileInfo( file ); System::IO::FileStream^ fileStream = fileInfo->OpenRead(); PictureBox1->Image = System::Drawing::Image::FromStream( fileStream ); Application::DoEvents(); fileStream->Close(); // Call Sleep so the picture is briefly displayed, //which will create a slide-show effect. System::Threading::Thread::Sleep( 2000 ); } PictureBox1->Image = nullptr; }
private void InitializePictureBox() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.pictureBox1.set_BorderStyle( System.Windows.Forms.BorderStyle.FixedSingle); this.pictureBox1.set_SizeMode(PictureBoxSizeMode.StretchImage); this.pictureBox1.set_Location(new System.Drawing.Point(72, 112)); this.pictureBox1.set_Name("pictureBox1"); this.pictureBox1.set_Size(new System.Drawing.Size(160, 136)); this.pictureBox1.set_TabIndex(6); this.pictureBox1.set_TabStop(false); } //InitializePictureBox private void InitializeOpenFileDialog() { this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); // Set the file dialog to filter for graphics files. this.openFileDialog1.set_Filter("Images (*.BMP;*.JPG;*.GIF)|" + "*.BMP;*.JPG;*.GIF|All files (*.*)|*.*"); // Allow the user to select multiple images. this.openFileDialog1.set_Multiselect(true); this.openFileDialog1.set_Title("My Image Browser"); } //InitializeOpenFileDialog private void fileButton_Click(Object sender, System.EventArgs e) { openFileDialog1.ShowDialog(); } //fileButton_Click // This method handles the FileOK event. It opens each file // selected and loads the image from a stream into pictureBox1. private void openFileDialog1_FileOk(Object sender, System.ComponentModel.CancelEventArgs e) { this.Activate(); String files[] = openFileDialog1.get_FileNames(); // Open each file and display the image in pictureBox1. // Call Application.DoEvents to force a repaint after each // file is read. for (int iCtr = 0; iCtr < files.length; iCtr++) { String file = files[iCtr]; System.IO.FileInfo fileInfo = new System.IO.FileInfo(file); System.IO.FileStream fileStream = fileInfo.OpenRead(); pictureBox1.set_Image(System.Drawing.Image.FromStream(fileStream)); Application.DoEvents(); fileStream.Close(); // Call Sleep so the picture is briefly displayed, // which will create a slide-show effect. System.Threading.Thread.Sleep(2000); } pictureBox1.set_Image(null); } //openFileDialog1_FileOk

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- Application.DoEvents メソッドのページへのリンク