WinForms简易浏览器

WinForms简易浏览器_第1张图片
简易浏览器
using System;
using System.Windows.Forms;
using System.Security.Permissions;

[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
public class Form1 : Form
{
    private WebBrowser webBrowser;

    private ToolStrip toolStrip;

    private ToolStripButton homeButton, backButton, forwardButton, refreshButton;

    private StatusStrip statusStrip;
    private ToolStripStatusLabel toolStripStatusLabel;

    private string homepage = "baidu.com";

    private void InitializeForm()
    {
        Size = new System.Drawing.Size(1280, 720);

        webBrowser = new WebBrowser();

        toolStrip = new ToolStrip();
        
        backButton = new ToolStripButton();
        forwardButton = new ToolStripButton();
        refreshButton = new ToolStripButton();
        homeButton = new ToolStripButton();

        statusStrip = new StatusStrip();
        toolStripStatusLabel = new ToolStripStatusLabel();

        toolStrip.Items.AddRange(new ToolStripItem[] {backButton, forwardButton, refreshButton, homeButton});

        backButton.Text = "Back";
        forwardButton.Text = "Forward";
        refreshButton.Text = "Refresh";
        homeButton.Text = "Home";

        backButton.Enabled = false;
        forwardButton.Enabled = false;

        backButton.Click += new System.EventHandler(BackButton_Click);
        forwardButton.Click += new System.EventHandler(ForwardButton_Click);
        refreshButton.Click += new System.EventHandler(RefreshButton_Click);
        homeButton.Click += new System.EventHandler(HomeButton_Click);

        statusStrip.Items.Add(toolStripStatusLabel);

        webBrowser.Dock = DockStyle.Fill;

        Controls.AddRange(new Control[] {webBrowser, toolStrip, statusStrip });
    }

    public Form1()
    {
        InitializeForm();
        
        webBrowser.CanGoBackChanged += WebBrowser_CanGoBackChanged;
        webBrowser.CanGoForwardChanged += WebBrowser_CanGoForwardChanged;
        webBrowser.DocumentTitleChanged += WebBrowser_DocumentTitleChanged;
        webBrowser.StatusTextChanged += WebBrowser_StatusTextChanged;
        webBrowser.DocumentCompleted += WebBrowser_DocumentCompleted;

        Navigate(homepage);
    }

    private void BackButton_Click(object sender, EventArgs e)
    {
        webBrowser.GoBack();
    }
    
    private void WebBrowser_CanGoBackChanged(object sender, EventArgs e)
    {
        backButton.Enabled = webBrowser.CanGoBack;
    }
    
    private void ForwardButton_Click(object sender, EventArgs e)
    {
        webBrowser.GoForward();
    }
    
    private void WebBrowser_CanGoForwardChanged(object sender, EventArgs e)
    {
        forwardButton.Enabled = webBrowser.CanGoForward;
    }
    
    private void StopButton_Click(object sender, EventArgs e)
    {
        webBrowser.Stop();
    }
    
    private void RefreshButton_Click(object sender, EventArgs e)
    {
        if (!webBrowser.Url.Equals("about:blank"))
            webBrowser.Refresh();
    }

    private void HomeButton_Click(object sender, EventArgs e)
    {
        Navigate(homepage);
    }
    
    private void WebBrowser_StatusTextChanged(object sender, EventArgs e)
    {
        toolStripStatusLabel.Text = webBrowser.StatusText;
    }
    
    private void WebBrowser_DocumentTitleChanged(object sender, EventArgs e)
    {
        Text = webBrowser.DocumentTitle;
    }

    private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {

    }

    private void Navigate(String address)
    {
        if (String.IsNullOrEmpty(address))
            return;

        if (address.Equals("about:blank"))
            return;

        if (!address.StartsWith("http://") && !address.StartsWith("https://"))
            address = "http://" + address;

        try
        {
            webBrowser.Navigate(new Uri(address));
        }
        catch (UriFormatException e)
        {

        }
    }

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new Form1());
    }
}

你可能感兴趣的:(WinForms简易浏览器)