이후에 MessageBox를 올바르게 표시하려면 웹 페이지가 Winforms WebControl에 완전히로드되었습니다. 다음 줄을 실행하기 전에 잠시 기다리는 방법
나는 지연이 코드를 사용 : 다음의System.Threading.Thread.Sleep(4000);
Task.Delay(2000);
없음이 작동하지 않습니다. 문제는 무한 루프가 있다는 것입니다.
누군가가 해결책이나 더 나은 대안을 제공 할 수 있습니까?
여기 아메드 ilyas 내가
private void btnGo_Click(object sender, EventArgs e)
{
try
{
string WebPage = txtURL.Text.Trim();
Webcntrl.Navigate(WebPage); // Webcntrl is Name of webcontrol in my Windows Applications
Webcntrl.DocumentCompleted +=new WebBrowserDocumentCompletedEventHandler(SiteLoaded);
}
catch (Exception ex)
{
}
}
private void SiteLoaded(object sender, WebBrowserDocumentCompletedEventArgs e)
{
MessageBox.Show("hI ! website loaded Sucessfully");
}
아래에 따라 코드를 수정하지만 지금, 메시지가 여러 번 나타 제안 내 코드에 따라
private void btnGo_Click(object sender, EventArgs e)
{
try
{
string WebPage = txtURL.Text.Trim();
Webcntrl.Navigate(WebPage); // Webcntrl is Name of webcontrol in my Windows Applications
while (Webcntrl.ReadyState.ToString() != "Complete")
{
//System.Threading.Thread.Sleep(4000);
//Task.Delay(2000);
}
MessageBox.Show("hI ! website loaded Sucessfully");
}
catch (Exception ex)
{
}
}
입니다.
" 그러나 둘 다 작동하지 않는다 "는 문제에 대한 좋은 설명이 아닙니다. 정확히 무엇이 잘못 되었습니까? –
웹 브라우저 컨트롤의 documentcomplete 이벤트를 사용해야합니다. http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documentcompleted(v=vs.110).aspx –
또한,'Task.Delay (2000)'는 실제로 'Waiting Task.Delay (2000)'또는'Task.Delay (2000) .Wait()'로 호출하지 않는 한 당신의 코드는 기다리고있다. –