2016-04-11 11 views
0

Bir olay eklemek istiyorum Denetim WebBrowser için DocumentCompleted. Bu benim kodum. ama işe yaramıyor.bir olay ekleme DocumentBrowser bir WebCrowser için C#

 <asp:Button id="Button_Auth" Text="Authentification" OnClick="Authentification_Click" runat="server"/> 
 
     <asp:label id="Messages" runat="server"/>

 public void Authentification_Click(object sender, EventArgs e) 
    { 
     string input = "https://www.google.fr"; 
     runBrowserThread(input); 

     Messages.Text = "ok"; 
    } 



    private void runBrowserThread(String url) 
    { 
     var th = new Thread(() => { 
      var br = new WebBrowser(); 
      br.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(browser_DocumentCompleted); 
      br.Navigate(url,true); 
     }); 
     th.SetApartmentState(ApartmentState.STA); 
     th.Start(); 
    } 

    public void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     var br = sender as WebBrowser; 
     Messages.Text = e.Url.ToString(); 

    } 

(durumda https://www.google.fr olarak) sayfa yükleme, Örneğin, Kullanıcı kilit kelimeyi girin ve arama bitince İstediğim açık yeni bir sayfa webbrowser ve her şey budur . Sonuç sayfasının yüklenmesi bittiğinde, https://www.google.fr/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=keyword sonucunun URL'sini geri alır ve bunu Mesajlarım etiketinde görüntülerim.

Neden kodum çalışmıyor bilmiyorum.

cevap

0

Etkinliğin olay işleyicinize tam olarak doğru olup olmadığını kontrol edin.

Bu bir asp.net uygulaması mı yoksa uygulama veya wpf uygulaması mı winforms? Asp.net uygulamasında bu etkinlik mevcut değil. Eğer asp.net'i deneyin JavaScript

+0

Bu bir asp. Net web uygulamasıdır. DocumentCompleted olayının sadece winforms uygulamasında kullanılabileceği anlamına mı geliyor? Tamam ... belki de doğru. Bu arada, bunun için JavaScript kodunun bir örneğini verebilir misiniz? Teşekkürler. – Stephane

+0

Ancak, bu durumda başka birinin sayfasına JavaScript ekleyemezsiniz. Google.fr, kendi sayfanızı tasarlayabilir ve ardından belge yükleme tamamlanmış etkinliğinde tetiklenecek olan JavaScript'i ekleyebilirsiniz. JQuery'de bunun için önceden yapılmış bir olay olduğu için yapmak kolaydır. Ancak bahsettiğiniz senaryo için Google aramanın sonuç URL'sini yakalamanız gerektiği gibi görünüyor, bence winforms yönünde gitmeniz gerekiyor. Bir web tarayıcısı denetimini dişli bir şekilde açan kodunuz bile, yalnızca bir masaüstü uygulamasında çalışır, ancak asp.net'de çalışamaz. – NatarajC

+0

Tamam bunu görüyorum. Diğer bir deyişle, URL’nin diğer URL’lerde Javascript ile alan adını alamıyoruz demektir. Ve eğer bunu C# ile yapmak istiyorsak, bu bir winform uygulaması olmalı. Bir asp .net web uygulamasında, alan adımda olmasa bile bir web tarayıcısında bir URL almak için başka yollara da sahip olabilir miyiz? Teşekkürler. – Stephane