tôi không thể tìm thấy bất cứ điều gì sẽ đảm bảo 100%. Ví dụ được đề cập (e.Url.Equals (webBrowser1.Url)) có thể hoạt động cho một WebBrowser.Navigate (url) đơn giản, tuy nhiên, trong trường hợp của tôi, tôi nhấp vào các nút trong mã để mở các khung mới trong khung hiện có. Chủ yếu là số lần "điều hướng" và "DocumentCompleted" lửa sẽ giống nhau, nhưng một lần nữa KHÔNG phải luôn luôn. "isBusy = false" và "ReadyState = Complete" sẽ luôn luôn là trường hợp khi nó hoàn thành (ít nhất là cho đến nay) nhưng nó cũng sẽ một vài lần có trạng thái này khi nó vẫn đang tải. Việc đếm các khung hình cũng có vẻ vô dụng đối với tôi, trong một trường hợp DocumentCompleted bị sa thải 23 lần, tuy nhiên, tất cả các khung và các khung phụ (-sub-sub và vân vân) là 14.
Điều duy nhất có vẻ hoạt động là chờ một khoảng thời gian ngắn (1 hoặc 2 giây?) Để xem liệu có bất kỳ điều gì xảy ra hay không (bất kỳ sự kiện nào được kích hoạt, bất kỳ thay đổi trạng thái nào).
Hmm, tôi tìm thấy một giải pháp khác cho tôi. Thông thường, chúng tôi không quan tâm đến toàn bộ trang đang được tải, thường chúng tôi muốn các phần tử nhất định tồn tại. Vì vậy, sau mỗi DocumentCompleted và khi "isBusy = false" và "ReadyState = Complete" chúng ta có thể tìm kiếm DOM nếu phần tử này tồn tại.
Cách dễ dàng của câu trả lời này đã làm cho tôi. Mặc dù tôi đang sử dụng điều khiển axWebBrowser1. Tôi đã kết thúc bằng cách sử dụng sau đây. if (e.uRL.Equals (axWebBrowser1.LocationURL)) – IamBatman
Tuyệt vời !! Cảm ơn nhiều – Grcn