Turning gears are the logo of co-scripts

Merhaba,

Kısaca yazacağım. Bir projede webbrowser kontrolü kullandığınızda kesinlikle içine yüklediğiniz (webbrowser1.navigate(url) ) sayfanın tam yüklenip yüklenmediği, işlemin tamamlanıp tamamlanmadığı sizin için önemli olacaktır.

Bunun kontrolü için while döngüsünde WebBrowserReadyState. durumlarına bakacaksınız. Ancak ben bir projemde bu duruma bakarken programın başka işlem yapmadığını hatta işlemleri tamamen durdurduğunu gördüm ve bu noktada takıldım kaldım.

Biraz web araştırması İngilizce ve Türkçe çözümlere ulaştırdı. Çözümlerden birisi yazılmış bir sınıf olan MessageBoxEx() kullanmak. Böylece mesaj kutusu çıktığında browser yüklemesine devam edebiliyor. Belirtilen süre sonunda da mesaj kutusu kayboluyor. Bunun sakıncası geç yüklenen bir sayfada sürenin saptanamaması.

Şu adresten ilgili makale ve sınıfı bulabilirsiniz. (Microsoft'un sayfası)

Gelelim bir Türkçe forumdan bulduğum güzel çözüme. Kesinlikle anlamlı ve bu bilgi az yerde bulunuyor.

http://www.csharpnedir.com/forum2/printer_friendly_posts.asp?TID=17232 forumunda bulduğum çözüm şu

webbrowser1.navigate("www.google.com")
while(webbrowser1.ReadyState != WebBrowserReadyState.Complete)
{
// buraya kadar biliniyor zaten
Application.DoEvents(); // işin sırrı burada, programın kilitlenmemesini sağlıyor
}

Böylece sorunu aştım.

co-scripts tag image webbrowserreadystatedoeventswebbrowser1
ID:219 | Okunma:3485

İlişkili Olabilecek Konular
WebBrowser Kontrolü ile HTML Parsing ve Web Sayfasından İçerik AlmawebBrowser Nesnesi ve InvokeScript