.NET WebBrowser denetimini kullanırken, aynı oturumu kullanarak yeni bir pencerede bir bağlantıyı nasıl açarsınız (örn. Sunucudaki yeni bir ASP.NET oturumu) veya URL'yi aynı WebBrowser denetiminde açmak için yeni pencere olayını nasıl yakalarsınız?System.Windows.Forms.WebBrowser aynı pencerede veya aynı pencerede yeni bir pencerede açık bağlantılar
12
A
cevap
19
Sadece cevabı arayan bir saat harcadım, bu yüzden sonuçları burada yayınlayayım. NewWindow olayını yakalamak için SHDocVwCtl.WebBrowser_V1 nesnesini kullanabilirsiniz.
NOT: Kod http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_21484555.html#discussion
//-------------------------------VB.NET Version:-------------------------------
Dim WithEvents Web_V1 As SHDocVwCtl.WebBrowser_V1
Private Sub Form_Load()
Set Web_V1 = WebBrowser1.Object
End Sub
Private Sub Web_V1_NewWindow(ByVal URL As String, ByVal Flags As Long, ByVal TargetFrameName As String, PostData As Variant, ByVal Headers As String, Processed As Boolean)
Processed = True
WebBrowser1.Navigate URL
End Sub
//-------------------------------C# Version-------------------------------
private SHDocVw.WebBrowser_V1 Web_V1; //Interface to expose ActiveX methods
private void Form1_Load(object sender, EventArgs e)
{
//Setup Web_V1 interface and register event handler
Web_V1 = (SHDocVw.WebBrowser_V1)this.webBrowser1.ActiveXInstance;
Web_V1.NewWindow += new SHDocVw.DWebBrowserEvents_NewWindowEventHandler(Web_V1_NewWindow);
}
private void Web_V1_NewWindow(string URL, int Flags, string TargetFrameName, ref object PostData,string Headers, ref bool Processed)
{
Processed = true; //Stop event from being processed
//Code to open in same window
this.webBrowser1.Navigate(URL);
//Code to open in new window instead of same window
//Form1 Popup = new Form1();
//Popup.webBrowser1.Navigate(URL);
//Popup.Show();
}
3
den biraz Greg'in cevabın versiyonunu temizledik. Geçilen denetimin davranışını, genel bir değişkene dayanmak yerine değiştirir. Kullanımı:
InlinePopups(webBrowser1);
Kodu:
// interface to expose ActiveX methods
private SHDocVw.WebBrowser_V1 Web_V1;
private void InlinePopups(WebBrowser browser)
{
// hooks to force new windows to open in the current instance
Web_V1 = (SHDocVw.WebBrowser_V1)browser.ActiveXInstance;
Web_V1.NewWindow += new SHDocVw.DWebBrowserEvents_NewWindowEventHandler((string URL, int Flags, string TargetFrameName, ref object PostData, string Headers, ref bool Processed) =>
{
Processed = true; // stop event from being processed
// open in the existing window
browser.Navigate(URL);
});
}
Hala elbette% WINDIR% \ system32 \ shdocvw.dll, başvurusunu ihtiyacı vardır.
İlgili konular
- 1. Yeni pencerede açik açiklama
- 2. Bir bağlantıyı aynı pencerede yeni bir sekmede aç
- 3. Aynı pencerede dosya açmak için atom ayar?
- 4. Aynı pencerede üç venn diyagramı nasıl yazdırılır
- 5. Yeni bir pencerede sayfa açmak veya kodun arkasından sekme açmak
- 6. Pencerede WPF kontrolünün yeri?
- 7. Bağlantıları intafeed.js içinde yeni pencerede aç
- 8. Yeni pencerede açıldığında resim resim çekilmiyor.
- 9. WIX yükleyici sonraki pencerede
- 10. OpenCV'de aynı pencerede birden çok (2,3,4, ...) görseli göster
- 11. Pencerede mouseout nasıl yakalanır?
- 12. XNA with Windows Forms - Yeni pencerede aç
- 13. Pencerede kaynak kullanımı
- 14. Katmanlı pencerede OpenGL stereo
- 15. çerçevesiz açılan pencerede
- 16. JavaScript: location.href yeni pencerede/sekmede açmak için?
- 17. Yeni pencerede WATIR odağı nasıl ayarlanır
- 18. Görüntü bir pencerede nasıl çizilir?
- 19. Bir pencerede bir denetimi nasıl kaplayabilirim?
- 20. linux veya pencerede web geliştirme için simülatör
- 21. Pencerede easy.py libsvm nasıl çalıştırılır?
- 22. Bir bağlantıyı yeni sekmede nasıl açabilirim (yeni pencerede değil)?
- 23. Yeni bir pencerede harici URL'leri açmak için nasıl link_ yapabilirim?
- 24. Bir pencerede window.open ile açıldığında belge kaydetme
- 25. Modal pencerede pdf nasıl görüntülenir?
- 26. pencerede bir işlem için açık dosya tanıtıcılarını görüntüle
- 27. VIM Bölmesi'nde diğer pencerede ilerleyin
- 28. Twitter Bootstrap modal pencerede titreme
- 29. Sys/time.h pencerede nasıl kullanılır?
- 30. Site haritasından ayrı bir pencerede belge açma
SHDocVw hangi bileşende tanımlıdır? En azından mshtml.dll dosyasında bulamıyorum. –
Ben% wındır bulunur düşünüyorum% \ system32 \ shdocvw.dll –
Obejet kendisini herkesin gettinf Bu bana çok iyi –