Lưu ý: Hàm, phương pháp, đối tượng hoặc thuộc tính được mô tả trong chủ đề này sẽ bị vô hiệu hóa nếu Dịch vụ Biểu thức Phản lực của Microsoft đang chạy trong chế độ hộp cát, điều này ngăn không cho đánh giá các biểu thức không an toàn tiềm ẩn. Để biết thêm thông tin về chế độ hộp cát, hãy tìm kiếm "chế độ hộp cát" trong Trợ giúp.
Cho phép thực hiện để hệ điều hành có thể xử lý các sự kiện khác.
Cú pháp
DoEvents ( )
Chú thích
Hàm DoEvents trả về một Số nguyên đại diện cho số lượng biểu mẫu mở trong các phiên bản độc lập của Microsoft Visual Basic, chẳng hạn như Visual Basic, Professional Edition. DoEvents trả về số không trong tất cả các ứng dụng khác.
DoEvents chuyển quyền điều khiển cho hệ điều hành. Control được trả về sau khi hệ điều hành đã hoàn tất việc xử lý các sự kiện trong hàng đợi của nó và tất cả các phím trong hàng đợi SendKeys đã được gửi.
DoEvents hữu ích nhất cho những điều đơn giản như cho phép người dùng hủy bỏ một quá trình sau khi nó đã bắt đầu, ví dụ như tìm kiếm một tập tin. Đối với các quy trình lâu dài, việc tạo ra bộ xử lý được thực hiện tốt hơn bằng cách sử dụng Bộ hẹn giờ hoặc ủy nhiệm tác vụ cho một cấu phần ActiveX EXE. Trong trường hợp sau, tác vụ có thể tiếp tục hoàn toàn độc lập với ứng dụng của bạn và hệ điều hành sẽ xử lý đa nhiệm và thời gian cắt.
Bất kỳ lúc nào bạn tạm thời mang lại cho bộ xử lý trong một thủ tục sự kiện, hãy đảm bảo rằng quy trình không được thực thi lại từ một phần khác của mã của bạn trước khi cuộc gọi đầu tiên trả về; điều này có thể dẫn đến kết quả không thể đoán trước. Ngoài ra, không sử dụng DoEvents nếu các ứng dụng khác có thể tương tác với thủ tục của bạn theo những cách bất ngờ trong thời gian bạn đã mang lại quyền kiểm soát.
Ví dụ
Lưu ý: Các ví dụ sau thể hiện cách sử dụng hàm này trong mô-đun Visual Basic for Applications (VBA). Để biết thêm thông tin về cách làm việc với VBA, chọn Tham khảo dành cho Nhà phát triển trong danh sách thả xuống cạnh Tìm kiếm, rồi nhập một hoặc nhiều từ vào hộp tìm kiếm.
Ví dụ này sử dụng hàm DoEvents để khiến việc thực thi tạo ra hệ điều hành một lần lặp 1000 lần trong vòng lặp. DoEvents trả về số lượng biểu mẫu Visual Basic đang mở nhưng chỉ khi ứng dụng máy chủ là Visual Basic.
' Create a variable to hold number of
' Visual Basic forms loaded and visible. Dim I, OpenForms For I = 1 To 150000 ' Start loop. If I Mod 1000 = 0 Then ' If loop has repeated ' 1000 times. OpenForms = DoEvents ' Yield to operating system. End If Next I ' Increment loop counter.