티스토리 뷰
이것은 비슷한 것을 사용해야하고 VB에있는 Winforms 응용 프로그램에서 왔지만 telerik 변환기를 사용하면 C #으로 쉽게 변환 할 수 있습니다. 코드를 공유해 주시면 답변을 수정 해 드릴 수 있습니다.
Private Property pageready As Boolean = False
Private Sub WaitForPageLoad()
AddHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
While Not pageready
Application.DoEvents()
Dim blocker = WebBrowser1.Document.Window.Frames(0).Frames(3).Frames(4).Document.GetElementsByTagName("head")
End While
pageready = False
End Sub
Private Sub PageWaiter(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
pageready = True
RemoveHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
End If
End Sub
이 예에서 볼 수 있듯이 여러 프레임으로 작업하고 있지만 필요한 작업을 수행하기 전에 페이지가 준비 될 때까지 기다립니다.
이것은 C # 변환입니다.
bool pageready = False;
private void WaitForPageLoad()
{
WebBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(PageWaiter);
while (!pageready) {
Application.DoEvents();
dynamic blocker = WebBrowser1.Document.Window.Frames(0).Frames(3).Frames(4).Document.GetElementsByTagName("head");
}
pageready = false;
}
private void PageWaiter(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (WebBrowser1.ReadyState == WebBrowserReadyState.Complete) {
pageready = true;
WebBrowser1.DocumentCompleted -= new WebBrowserDocumentCompletedEventHandler(PageWaiter);
}
}
출처
https://stackoverflow.com/questions/39916985