Yukarıdaki gibi formumuzu hazırlıyoruz. en üst kısımda yer alan tool strip  menüde hazırladığımız iconlarımızı ileri, geri, dur, yenile,Anasayfa, Favorilere ekle  butonumuzu icon dosyamızdan ekliyoruz. Sol tarafta bir textbox ve hemen yanında search butonu ekliyoruz. Arama yapılacak adresi girmek için combobox,’ dan kullanıcıya seçim yaptırıyoruz. Tool strip menü’nün hemen altında girilecek adres için bir textbox ekliyoruz. Bu textboxa kullanıcı adresi girdiğinde enter tuşuna bastığı zaman girilen web adresini web browser’ da gösterecek şekilde programlıyoruz.

Bir tabpages control ekliyoruz. 3 sekmede, Geçmiş , Favoriler ve Aramamotoru ekliyoruz. Bu tabpagelerin hemen solunda yer alan iconlar için imagelist ekliyoruz.  Sayfa yüklenirken yükleme durumunu göstermesi için formun altına statusstrip ekliyerek , bunun içinde statuslabel ve progressbar  koyuyoruz.

Yukarıdaki projemizin solution explorer’ında da görüldüğü gibi Bir class(Sınıf) eklioyoruz. Aramamotoru.cs  içinde aşağıdaki kodu yazıyoruz.

using System;
using System.Collections.Generic;
using System.Text;

namespace BilgeAdamExplorer
{
    public class AramaMotoru
    {
        public string Ad { get; set; }
        public string Url { get; set; }

        public override string ToString()
        {
            return Ad;
        }
    }
}

Daha ‘ da ayrıntıları görmek için  Form1.cs  içinde yazdığım kodu inceleyiniz;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace BilgeAdamExplorer
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            webBrowser1.GoBack();
        }
        private void btnİleri_Click(object sender, EventArgs e)
        {
            webBrowser1.GoForward();
        }
        private void btnDur_Click(object sender, EventArgs e)
        {
            webBrowser1.Stop();
        }
        private void btnYenile_Click(object sender, EventArgs e)
        {
            webBrowser1.Refresh();
        }
        private void btnHomepage_Click(object sender, EventArgs e)
        {
            webBrowser1.GoHome();
        }
        private void btnFavoriEkle_Click(object sender, EventArgs e)
        {
            if (!lbxFavori.Items.Contains(txtAdres.Text.Trim()))
            {
                lbxFavori.Items.Add(txtAdres.Text.Trim());
            }
            else
            {
                MessageBox.Show("Eklemek istediğiniz sayfa daha önceden eklenmiş");
            }
        }
        private void txtAdres_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && e.KeyCode == Keys.Enter)
            {
                //txtAdres.Text = "www." + txtAdres.Text + ".com";
                txtAdres.Text = string.Format("www.{0}.com", txtAdres.Text.Trim());
                webBrowser1.Navigate(txtAdres.Text);
            }
            else if(e.KeyCode== Keys.Enter)
            {
                webBrowser1.Navigate(txtAdres.Text);
            }
        }
        private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
        {
            toolStripProgressBar1.Value = Convert.ToInt32(e.CurrentProgress);
        }
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            toolStripStatusLabel1.Text = "Bitti";
        }

        private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
        {
            toolStripStatusLabel1.Text = "Yükleniyor...";
        }
        private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
        {
            txtAdres.Text = webBrowser1.Url.ToString();
            if (!lbxGecmis.Items.Contains(txtAdres.Text.Trim()))
            {
                lbxGecmis.Items.Add(txtAdres.Text.Trim());
            }
        }
        void oku(ListBox lbx)
        {
            FileStream fs = File.Open(lbx.Tag.ToString() + ".txt", FileMode.Open);
            StreamReader sr = new StreamReader(fs,Encoding.GetEncoding("iso-8859-9"));
            string line="";
            while ((line = sr.ReadLine()) != null)
            {
                lbx.Items.Add(line);
            }
            sr.Close();
            fs.Close();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            if (File.Exists( lbxFavori.Tag.ToString()+".txt") )
            {
                oku(lbxFavori);
            }

            if (File.Exists(lbxGecmis.Tag.ToString() + ".txt"))
            {
                oku(lbxGecmis);
            }

            if (File.Exists("aramamotor.txt"))
            {
                AramaMotoruOku();
                MotorGuncelle();
            }
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (lbxFavori.Items.Count != 0)
            {
                yaz(lbxFavori);
            }

            if (lbxGecmis.Items.Count != 0)
            {
                yaz(lbxGecmis);
            }

            if (lbxAramaMotorlari.Items.Count > 0)
            {
                aramaMotoruYaz();
            }
        }
        private void aramaMotoruYaz()
        {
            FileStream fs = File.Open("aramamotor.txt",FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);
            for (int i = 0; i < lbxAramaMotorlari.Items.Count; i++)
            {
                AramaMotoru m = lbxAramaMotorlari.Items[i] as AramaMotoru;
                sw.WriteLine(m.Ad + ";" + m.Url);
            }
            sw.Close();
            fs.Close();
        }
        void yaz(ListBox lbx)
        {
            FileStream fs = new FileStream(lbx.Tag.ToString() + ".txt", FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);
            for (int i = 0; i < lbx.Items.Count; i++)
            {
                sw.WriteLine(lbx.Items[i].ToString());
            }
            sw.Close();
            fs.Close();
        }
        private void lbxGecmis_DoubleClick(object sender, EventArgs e)
        {
            webBrowser1.Navigate(lbxGecmis.SelectedItem.ToString());
        }

        private void lbxFavori_DoubleClick(object sender, EventArgs e)
        {
            webBrowser1.Navigate(lbxFavori.SelectedItem.ToString());
        }
         void AramaMotoruOku()
        {
            FileStream fs = new FileStream("aramamotor.txt",FileMode.Open);
            StreamReader sr =new StreamReader(fs,Encoding.GetEncoding("iso-8859-9"));
            string satır="";

            while ((satır = sr.ReadLine()) != null)
            {
                AramaMotoru yeniarama = new AramaMotoru();
                yeniarama.Ad = satır.Split(';')[0];
                yeniarama.Url = satır.Split(';')[1];

                lbxAramaMotorlari.Items.Add(yeniarama);
            }
            sr.Close();
            fs.Close();
        }
        private void btnEkle_Click(object sender, EventArgs e)
        {
            AramaMotoru yeniarama = new AramaMotoru();
            yeniarama.Ad = txtAd.Text;
            yeniarama.Url = txtUrl.Text;
            lbxAramaMotorlari.Items.Add(yeniarama);
            txtAd.Clear();
            txtUrl.Clear();
            MotorGuncelle();
        }
        private void MotorGuncelle()
        {
            cbxAramaMotoru.Items.Clear();

            for (int i = 0; i < lbxAramaMotorlari.Items.Count; i++)
            {
                AramaMotoru m = lbxAramaMotorlari.Items[i] as AramaMotoru;
                cbxAramaMotoru.Items.Add(m);
            }
        }
        private void btnSil_Click(object sender, EventArgs e)
        {
            lbxAramaMotorlari.Items.RemoveAt(lbxAramaMotorlari.SelectedIndex);
            MotorGuncelle();
        }
        private void btnAra_Click(object sender, EventArgs e)
        {
            try
            {
                AramaMotoru secilen = cbxAramaMotoru.SelectedItem as AramaMotoru;
                string adres = secilen.Url.Replace("test", txtAranan.Text);
                webBrowser1.Navigate(adres);
            }
            catch
            {

            }
        }
        private void txtAranan_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                btnAra.PerformClick();
            }
        }
    }
}

Dosyayı İndir