Bu paylaşımda, gelişmiş bir web tarayıcı olmasada tabpage ile yeni sekme oluşturabileceğimiz bir tarayıcı yapacağız.Sayfa yenileme, geri ve ileri gibi nitelikleri webbrowser nesnesini methodlarını kullanarak oluşturacağız.Webbrowser'ın eventlerini kullanarak sayfa yükleniyorken sayfa yükleniyor mesajının verilmesini, sayfa yüklendikten sonra yapılması gereken işlemlerin yapılmasını sağlayacağız ve buna benzer özellikleri ele alacağız.
Umarım işinizi görür.

Web tarayıcıyı indirmek isterseniz hemen yandaki linke tıklayarak yönlendirilen siteden indirebilirsiniz. İNDİR

public partial class AnaForm : Form
{
public AnaForm()
{
InitializeComponent();
this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea;
this.WindowState = FormWindowState.Maximized;
}
TabPage yeniTabpage;
FormIcineAcilacaklar acilacakForm;
byte tabOlusturmaSayisi = 1;
public int pageIndex = 1;
TabControl tiklanan;

private void AnaForm_Load(object sender, EventArgs e)
{
AddNewTab();
tabControl.SelectedIndex = 1;
}

//aşağıda tabpage oluşturuluyor.
public void AddNewTab()
{
yeniTabpage = new TabPage("Yeni Sekme");
yeniTabpage.Name = "tabNewPage" + tabOlusturmaSayisi;
tabControl.ItemSize = new Size(180, 25);
tabControl.TabPages.Add(yeniTabpage);
//tabpage formu açma
acilacakForm = new FormIcineAcilacaklar();
acilacakForm.TopLevel = false;
acilacakForm.Dock = DockStyle.Fill;
acilacakForm.Show();
yeniTabpage.Controls.Add(acilacakForm);
tabOlusturmaSayisi++;
}

public void tabPageIsminiGetir()
{
FormIcineAcilacaklar form = (FormIcineAcilacaklar)Application.OpenForms["FormIcineAcilacaklar"];
tabControl.TabPages[pageIndex].Text = form.title;
}

//seçili olan tabPageyi bulma
public void tabControl_Click(object sender, EventArgs e)
{
tiklanan = (TabControl)sender;
pageIndex = tiklanan.SelectedIndex;
FormIcineAcilacaklar form = (FormIcineAcilacaklar)Application.OpenForms["FormIcineAcilacaklar"];
form.title = "";
}

//new tabpage e basıldıgında yeni tabpage yükleniyor
public void tabControl_Selected(object sender, TabControlEventArgs e)
{
if (tabControl.SelectedTab == tabNewPage)
{
AddNewTab();
}
}

//mouse hareketini yakala
int x, y;
private void tabControl_MouseDown(object sender, MouseEventArgs e)
{
x = MousePosition.X - this.Left;
y = MousePosition.Y - this.Top;
timer1.Enabled = true;
}

//timeri başlat
private void tabControl_MouseUp(object sender, MouseEventArgs e)
{
timer1.Enabled = false;
}

//mouse ile formu taşı
private void timer1_Tick(object sender, EventArgs e)
{
this.Left = MousePosition.X - x;
this.Top = MousePosition.Y - y;
}

//Ekranı max yap yada normal yap
private void btnMaxAndNormal_Click(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Maximized)
{
this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea;
this.WindowState = FormWindowState.Normal;
}
else
{
this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea;
this.WindowState = FormWindowState.Maximized;
}
}

//ekranı minimized yap
private void btnMinimize_Click(object sender, EventArgs e)
{
WindowState = FormWindowState.Minimized;
}

//tarayıcıyı kapat
private void BtnExit_Click(object sender, EventArgs e)
{
Application.Exit();
tabOlusturmaSayisi = 1;
}
}



public partial class FormIcineAcilacaklar : Form
{
public FormIcineAcilacaklar()
{
InitializeComponent();
}

AnaForm form = (AnaForm)Application.OpenForms["Anaform"];
public string aranan, title;

private void FormIcineAcilacaklar_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("www.google.com");
title="Google";
form.tabPageIsminiGetir();
}

private void richTxtArama_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
try
{
aranan = richTxtArama.Text.ToString();
if (aranan.StartsWith("www.") && aranan.EndsWith(".com") | aranan.EndsWith(".org") | aranan.EndsWith(".gov"))
{
string adres = "http://" + richTxtArama.Text;
webBrowser1.Navigate(adres);
title = webBrowser1.DocumentTitle;
}
else
{
string arananKelime = "http://www.google.com.tr/search?hl=tr&q=" + richTxtArama.Text;
webBrowser1.Navigate(arananKelime);
title = richTxtArama.Text + " Google'da Ara";
form.tabPageIsminiGetir();
}
}
catch { title = "Hata"; }
}
}

//sayfa yüklenirken
private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
lbl_Load.Text = "Sayfa yükleniyor...";
}

//sayfa yüklendikten sonra
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
lbl_Load.Text = "";
richTxtArama.Text = e.Url.ToString();
}

private void btnYenile_Click(object sender, EventArgs e)
{
webBrowser1.Refresh();
}

private void btnileri_Click(object sender, EventArgs e)
{
webBrowser1.GoForward();
}

private void btnGeri_Click(object sender, EventArgs e)
{
webBrowser1.GoBack();
}

public void btnAyarlar_Click(object sender, EventArgs e)
{
contextMenuAyarlar.Show(btnAyarlar, -contextMenuAyarlar.Width + btnAyarlar.Width, btnAyarlar.Height);
}

private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
{
webBrowser1.Navigate(webBrowser1.StatusText);
e.Cancel = true;
}

private void toolStripYeniSekme_Click(object sender, EventArgs e)
{
form.AddNewTab();
form.tabPageIsminiGetir();
}
}