C# Webbrowser İle İlgili Bir Sıkıntı
-
Selam arkadaşlar,
WebBrowser'a bir link gönderip açılan sayfanın html kodunu alıyoru.
Ama link içinde bir değeri parametrik yapmam gerektiği için for linki güncelleyip WebBrowser'a gönderiyorum ancak o zamanda for çok hızlı dönüyor bende WebBrowser içinde sayfa yüklenmemiş olduğu için tüm html kodu alamıyorum.
Çözüm olarak şunu yaptım oldu;
WebBrowser'ın documentComplete diye bir eventi var orda sayfa her yüklendiğinde i++ ve fonksyonu çağırıyorum ve fonksyon başına if(i>=50) return; koyarak işimi çözdüm.
Buraya kadar sorun yok.
Ancak iç içe üç tane for çalıştırmam lazım. Burda patlıyo bu çözüm. Umarım anlatabilmişimdir. Çözüm fikri olan var mı? Nasıl bir yol izlemeli?
-
webbrowser kullananların ortak sorunu galiba sürekli aynı kodu yapıştırıyorum :D completed eventında yapmana gerek yok
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
şu kodla sayfanın yüklenmesini bekletip kodları öyle çekebilirsin.
navigate ....
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
işlemler ......
gibi . destege mail atsammı kodu sabitlesinler .net kategorisine :D
-
@fcn bu çalışırsa çok güzel olacak ancak o satırda alttaki gibi bir hata verdi
"Belirtilen atama geçerli değil."
-
hmmm sebebini buldum sanırım. Kodlar Thread içinde çalışıyor ordan kaldırınca düzeldi. Ama çok fazla işlem yapacak ordan kaldırırsamda program kitlenir bi noktadan sonra :\
-
bunuda form load'a ekledim hala neden sapıtır ya
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
-
http://www.vbforums.com/showthread.php?t=526241
burda çözmüşler hatayı ama bakıpda bişey anlayan var mı?
-
webbrowser documentcompleted eventini araştır. yukarıda yazdığın kontrolu oraya yaz. while la değil if le yapacaksın.
