c# winform 自编简易浏览器

using System;
using System.ComponentModel;
using System.Data;
using System.Windows.Forms;
using System.Xml;

namespace nathan_browser
{
    public partial class Form1 : Form
    {
        private DataSet ds = new DataSet();
        public Form1()
        {
            InitializeComponent();
        }
        string xmlfile = "urls.xml";
        private void btn_go_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate(tb_url.Text);
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.ScriptErrorsSuppressed = true; //关闭脚本错误消息
            readxml();
        }
        void readxml() {
            ds.ReadXml(xmlfile);
            cbb_urls.DisplayMember = "Name";
            cbb_urls.ValueMember = "value";
            cbb_urls.DataSource = ds.Tables[0];//或者使用 cbb_urls.DataSource = xmlds.Tables["url"];
        }
        private void cbb_urls_SelectedIndexChanged(object sender, EventArgs e)
        {
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)   //加载全部链接
            {
                if (ds.Tables[0].Rows[i]["name"].ToString() == cbb_urls.Text)
                {
                    tb_url.Text = ds.Tables[0].Rows[i]["addr"].ToString();
                    webBrowser1.Navigate(tb_url.Text);
                }
            }
        }

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

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)   //还可以使用 Keys.F 等 检测F键是否按下
            {
                webBrowser1.Navigate(tb_url.Text);
            }
        }
        private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            tb_url.Text = e.Url.ToString();
        }

        private void btn_savetofavorite_Click(object sender, EventArgs e)
        {
           string result = InputBox("设置收藏网址名称", "你要收藏的网址是:"+tb_url.Text, "");

            try
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(xmlfile);

                XmlElement url = doc.CreateElement("url");

                XmlElement name = doc.CreateElement("name");
                name.InnerText = result;
                url.AppendChild(name);

                XmlElement addr = doc.CreateElement("addr");
                addr.InnerText = tb_url.Text;
                url.AppendChild(addr);

                XmlElement root = doc.DocumentElement;
                root.AppendChild(url);
                doc.Save(xmlfile);

                MessageBox.Show("添加成功!", "提示");
            }
            catch (Exception xe)
            {
                MessageBox.Show(xe.Message);
            }

        }

        private string InputBox(string Caption, string Hint, string Default)
        {
            Form InputForm = new Form();
            InputForm.MinimizeBox = false;
            InputForm.MaximizeBox = false;
            InputForm.StartPosition = FormStartPosition.CenterScreen;
            InputForm.Width = 500;
            InputForm.Height = 150;
            //InputForm.Font.Name = "宋体";
            //InputForm.Font.Size = 10;

            InputForm.Text = Caption;
            Label lbl = new Label();
            lbl.Text = Hint;
            lbl.Left = 10;
            lbl.Top = 20;
            lbl.Parent = InputForm;
            lbl.AutoSize = true;

            TextBox tb = new TextBox();
            tb.Left = 230;
            tb.Top = 45;
            tb.Width = 160;
            tb.Parent = InputForm;
            tb.Text = Default;
            tb.SelectAll();

            Button btnok = new Button();
            btnok.Left = 230;
            btnok.Top = 80;
            btnok.Parent = InputForm;
            btnok.Text = "确定";
            InputForm.AcceptButton = btnok;//回车响应
            btnok.DialogResult = DialogResult.OK;

            Button btncancal = new Button();
            btncancal.Left = 320;
            btncancal.Top = 80;
            btncancal.Parent = InputForm;
            btncancal.Text = "取消";
            btncancal.DialogResult = DialogResult.Cancel;
            try
            {
                if (InputForm.ShowDialog() == DialogResult.OK)
                {
                    return tb.Text;
                }
                else
                {
                    return null;
                }
            }
            finally
            {
                InputForm.Dispose();
            }
        }

        private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }

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

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

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

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

/*
 urls.xml文档内容示例:

 <?xml version="1.0" encoding="gb2312" standalone="yes"?>
<urls>
  <url>
    <name>baidu</name>
    <addr>http://baidu.com</addr>
  </url>
  <url>
    <name>csdn</name>
    <addr>http://csdn.net</addr>
  </url>
  <url>
    <name>126</name>
    <addr>http://126.com</addr>
  </url>
  </urls>

  */
代码地址:  https://download.csdn.net/download/zybpub/12736217

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zybpub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值