创建自己的浏览器

创建浏览器主要使用网络编程技术,使用system.net命名空间,这个命名空间为当前网络上使用的多种协议提供了简单的编程接口,而它包含的WebRequest和WebResponse类形成了所谓的可插式

创建自己的浏览器_第1张图片

using System.Net;
using System.IO;
namespace 创建浏览器
private void Open_Click(object sender, EventArgs e)
{
openPage();
}
private void openPage()
{
if(textBox1.Text.Length>0)
{
webBrowser1.Navigate(textBox1.Text.Trim());
}
else
{
Console.WriteLine(“请正确输入网址!包括http://”);
}
}

    private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
    {
        e.Cancel = true;
        if (webBrowser1.Document.ActiveElement != null)
        {
            webBrowser1.Navigate(webBrowser1.Document.ActiveElement.GetAttribute("href"));
            textBox1.Text = webBrowser1.Document.ActiveElement.GetAttribute("href");
        }
    }

    private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
    {//判定是否可以执行返回
        if (webBrowser1.CanGoBack)
        {
            toolStrip1.Items[0].Enabled = true;
        }
        else
        {
            toolStrip1.Items[0].Enabled = false;
            if (webBrowser1.CanGoForward)
            {
                toolStrip1.Items[1].Enabled = true;
            }
            else
            {
                toolStrip1.Items[1].Enabled = false;
            }
        }
    }

    private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
    {
        try
        {
            if (e.ClickedItem.Name == "tsbBack")
                webBrowser1.GoBack();
            if (e.ClickedItem.Name == "tsbForward")
                webBrowser1.GoForward();
            if (e.ClickedItem.Name == "tsbRefresh")
                webBrowser1.Refresh();
            if (e.ClickedItem.Name == "tsbHome")
                webBrowser1.GoHome();
            if (e.ClickedItem.Name == "tsbStop")
                webBrowser1.Stop();
            if (e.ClickedItem.Name == "tsbExit")
                if (MessageBox.Show("确认退出浏览?", "退出对话框", MessageBoxButtons.OKCancel)
                    == DialogResult.OK)
            {
                Application.Exit();
            }
            if (e.ClickedItem.Name == "tsbViewSource")
            {
                WebRequest wrq = WebRequest.Create(textBox1.Text);
                WebResponse wrs = wrq.GetResponse();
                StreamReader sr = new StreamReader(wrs.GetResponseStream(), Encoding.Default);
            }       

        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message.ToString());
        }
    }

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        char c = e.KeyChar;
        if (c == 13) openPage();
    }
}
}

你可能感兴趣的:(C#)