Soran
C# WebBrowser da yeni sayfada açılan tüm linkler yeni sekmede açılsın.

Genel Tartışma
-
Merhaba, C#ile TabControl kullanacak sekmeli bir webbrowser yaptım. IE11 kullanıyor ve herşey iyi çalışıyor. Ancak eğer IE kullansaydım bazı sitelere giriş yaptıktan sonra o sekmeyi kapatıp yeni popup sayfada açıyor. Bu şekilde siteler var. Demem o ki yeni sayfada veya yeni pencerede açılması gereken sayfaları projemdeki Yeni Sekmede açılmak istiyorum. Bunu bir örnekle gösterebilir misiniz. Şimdiden teşekkürler...
- Değiştirilmiş Tür Kyamuran SalibryamMicrosoft contingent staff, Moderator 19 Ağustos 2016 Cuma 12:09
Tüm Yanıtlar
-
Bir sitede bununla alakalı birşeyler anlatmış acaba benim istediğim şey mi? Linklerde yeni pencereleri mi Yeni Sekmede açıyor , aynı zamanda Pop-up ları da Yeni Sekme yapıyor mu?
http://stackoverflow.com/questions/5312275/open-new-web-page-in-new-tab-in-webbrowser-control
- Düzenleyen Bilcom Bilgisayar 19 Ağustos 2016 Cuma 20:16 ...
-
-
Dediğin gibi yaptım ama beceremedim. Internet Controls referansını ekledim ama aşağıdaki satırı eklemeye başladığımda hata almaya başlıyorum. Ve Browser olarak TabControl kullanıyorum WebBrowser için NewWindows eventını activex ile nasıl kullanacağım? Ve ilk iki satırı nerede kullanacağım?
this.wbInternetPenceresi.ActiveXInstance;
- Düzenleyen Bilcom Bilgisayar 20 Ağustos 2016 Cumartesi 21:09 ...
-
-
-
-
Kodları projeye dediğin şekilde ekledim. Ancak F5 ile programı çalıştırdığımda windows için null değerini alamaz şeklinde hata alıyorum. Hatayı da yukarıdaki resimde gösterdim.
public Form1() { SetBrowserVersion(); InitializeComponent(); SHDocVw.WebBrowser_V1 window = (SHDocVw.WebBrowser_V1) web.ActiveXInstance; window.NewWindow += Window_NewWindow; } private void Window_NewWindow(string URL, int Flags, string TargetFrameName, ref object PostData, string Headers, ref bool Processed) { Processed = true; web.Navigate(URL); }
-
Eğer gerekirse projemin kodlarını da yazıyorum...
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Microsoft.Win32; namespace ProxyBrowser { public partial class Form1 : Form { WebBrowser web = new WebBrowser(); private int i = 0; public Form1() { SetBrowserVersion(); InitializeComponent(); SHDocVw.WebBrowser_V1 window = (SHDocVw.WebBrowser_V1) web.ActiveXInstance; window.NewWindow += Window_NewWindow; } private void Window_NewWindow(string URL, int Flags, string TargetFrameName, ref object PostData, string Headers, ref bool Processed) { Processed = true; web.Navigate(URL); } private void Form1_Load(object sender, EventArgs e) { ProxyIslemleri.Ayarla("proxy ip ve port numarası"); web = new WebBrowser(); web.ScriptErrorsSuppressed = true; web.Dock = DockStyle.Fill; web.Visible = true; web.DocumentCompleted += Web_DocumentCompleted; tabControl1.TabPages.Add("Yeni Sekme"); tabControl1.SelectTab(i); tabControl1.SelectedTab.Controls.Add(web); i += 1; } private void Web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { tabControl1.SelectedTab.Text = ((WebBrowser)tabControl1.SelectedTab.Controls[0]).DocumentTitle; } private void başlaToolStripMenuItem_Click(object sender, EventArgs e) { ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(toolStripComboBox1.Text); if (!toolStripComboBox1.Items.Contains(toolStripComboBox1.Text)) { toolStripComboBox1.Items.Add(toolStripComboBox1.Text); } } private void btnGeri_Click(object sender, EventArgs e) { ((WebBrowser)tabControl1.SelectedTab.Controls[0]).GoBack(); } private void btnIleri_Click(object sender, EventArgs e) { ((WebBrowser)tabControl1.SelectedTab.Controls[0]).GoForward(); } private void yeniSekmeToolStripMenuItem_Click(object sender, EventArgs e) { web = new WebBrowser(); web.ScriptErrorsSuppressed = true; web.Dock = DockStyle.Fill; web.Visible = true; web.DocumentCompleted += Web_DocumentCompleted; tabControl1.TabPages.Add("Yeni Sekme"); tabControl1.SelectTab(i); tabControl1.SelectedTab.Controls.Add(web); i += 1; } private void sekmeKapatToolStripMenuItem_Click(object sender, EventArgs e) { if (tabControl1.TabPages.Count - 1 > 0) { tabControl1.TabPages.RemoveAt(tabControl1.SelectedIndex); tabControl1.SelectTab(tabControl1.TabPages.Count - 1); i -= 1; } } private void toolStripComboBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { e.SuppressKeyPress = true; ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(toolStripComboBox1.Text); } } void SetBrowserVersion() { string key = "Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION"; string appName = (System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".exe"); int mode = 10000; RegistryKey RKey = Registry.CurrentUser.CreateSubKey(key); if (RKey.GetValue(appName) == null) { RKey.SetValue(appName, mode, RegistryValueKind.DWord); System.Threading.Thread.Sleep(1000); } RKey.Close(); } } }
-
-
Dediğin gibi yaptım bu defa hata vermedi ama pop-up sayfaları yeni sekmedi açmadı yine pop-up sayfada açtı. Acaba neyi yanlış yapıyorum
private void Form1_Load(object sender, EventArgs e) { ProxyIslemleri.Ayarla("proxy ip ve port numarası"); try { SHDocVw.WebBrowser_V1 window = (SHDocVw.WebBrowser_V1)web.ActiveXInstance; window.NewWindow += Window_NewWindow; } catch (Exception) { } web = new WebBrowser(); web.ScriptErrorsSuppressed = true; web.Dock = DockStyle.Fill; web.Visible = true; web.DocumentCompleted += Web_DocumentCompleted; tabControl1.TabPages.Add("Yeni Sekme"); tabControl1.SelectTab(i); tabControl1.SelectedTab.Controls.Add(web); i += 1; }
{
Processed = true;
web.Navigate(URL);
}
- Düzenleyen Bilcom Bilgisayar 23 Ağustos 2016 Salı 20:56 ...
-
-