Csharp/CSharp Tutorial/GUI Windows Forms/WebBrowser — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 15:15, 26 мая 2010
Содержание
A simple Browser
<source lang="csharp">using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class WebBrowserDemo {
[STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); }
} public partial class Form1 : Form {
public Form1() { InitializeComponent(); } private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e) { toolStripProgressBar1.Maximum = (int)e.MaximumProgress; toolStripProgressBar1.Value = (int) e.CurrentProgress; } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { toolStripProgressBar1.Value = toolStripProgressBar1.Maximum; }
} partial class Form1 {
private void InitializeComponent() { this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.toolStripProgressBar1 = new System.Windows.Forms.ToolStripProgressBar(); this.webBrowser1 = new System.Windows.Forms.WebBrowser(); this.statusStrip1.SuspendLayout(); this.SuspendLayout(); // // statusStrip1 // this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripProgressBar1}); this.statusStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Table; this.statusStrip1.Location = new System.Drawing.Point(0, 488); this.statusStrip1.Name = "statusStrip1"; this.statusStrip1.Size = new System.Drawing.Size(695, 22); this.statusStrip1.TabIndex = 0; this.statusStrip1.Text = "statusStrip1"; // // toolStripProgressBar1 // this.toolStripProgressBar1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.ImageAndText; this.toolStripProgressBar1.Name = "toolStripProgressBar1"; this.toolStripProgressBar1.Size = new System.Drawing.Size(100, 15); this.toolStripProgressBar1.Text = "toolStripProgressBar1"; // // webBrowser1 // this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill; this.webBrowser1.Location = new System.Drawing.Point(0, 0); this.webBrowser1.Name = "webBrowser1"; this.webBrowser1.Size = new System.Drawing.Size(695, 488); this.webBrowser1.Url = new System.Uri("http://www.nfex.ru", System.UriKind.Absolute); this.webBrowser1.ProgressChanged += new System.Windows.Forms.WebBrowserProgressChangedEventHandler(this.webBrowser1_ProgressChanged); this.webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.webBrowser1_DocumentCompleted); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(695, 510); this.Controls.Add(this.webBrowser1); this.Controls.Add(this.statusStrip1); this.Name = "Form1"; this.Text = "Form1"; this.statusStrip1.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); } private System.Windows.Forms.StatusStrip statusStrip1; private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar1; private System.Windows.Forms.WebBrowser webBrowser1;
}</source>
Browser with Url entry box
<source lang="csharp">using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; public class BrowserWithUrlEntryBox {
[STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); }
} public partial class Form1 : Form {
public Form1() { InitializeComponent(); } private void goButton_Click(object sender, EventArgs e) { ftpBrowser.Navigate(addressBox.Text); }
} partial class Form1 {
/// <summary> /// Required designer variable. /// </summary> private System.ruponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.ftpBrowser = new System.Windows.Forms.WebBrowser(); this.label1 = new System.Windows.Forms.Label(); this.addressBox = new System.Windows.Forms.TextBox(); this.goButton = new System.Windows.Forms.Button(); this.SuspendLayout(); // // ftpBrowser // this.ftpBrowser.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.ftpBrowser.Location = new System.Drawing.Point(16, 42); this.ftpBrowser.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.ftpBrowser.Name = "ftpBrowser"; this.ftpBrowser.Size = new System.Drawing.Size(917, 524); this.ftpBrowser.TabIndex = 4; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(15, 11); this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(60, 17); this.label1.TabIndex = 1; this.label1.Text = "Address"; // // addressBox // this.addressBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.addressBox.Location = new System.Drawing.Point(77, 7); this.addressBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.addressBox.Name = "addressBox"; this.addressBox.Size = new System.Drawing.Size(572, 22); this.addressBox.TabIndex = 2; // // goButton // this.goButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.goButton.Location = new System.Drawing.Point(659, 5); this.goButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.goButton.Name = "goButton"; this.goButton.Size = new System.Drawing.Size(100, 28); this.goButton.TabIndex = 3; this.goButton.Text = "Go"; this.goButton.Click += new System.EventHandler(this.goButton_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(949, 581); this.Controls.Add(this.goButton); this.Controls.Add(this.addressBox); this.Controls.Add(this.label1); this.Controls.Add(this.ftpBrowser); this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.WebBrowser ftpBrowser; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox addressBox; private System.Windows.Forms.Button goButton;
}</source>
Online Book Browser
<source lang="csharp">/* Mastering Visual C#.Net
- Paperback: 800 pages
- Publisher: Sybex; 1st edition (August 20, 2002)
- Language: English
- ISBN-10: 0782129110
- ISBN-13: 978-0782129113
- /
using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.IO; using System.Text.RegularExpressions; class Book {
public string BookTitle; public string BookURL; public Book( string title, string url) { BookTitle = title; BookURL = url; } public override string ToString() { return BookTitle; }
} public partial class Form1 : Form {
public Form1() { InitializeComponent(); } private void bookCheckButton_Click(object sender, EventArgs e) { GetWebPage("http://www.apress.ru/book/forthcoming.html"); } private MatchCollection GetBookDetailsFromWebPage(string webPage) { // Use a regex here to find all the book info Regex newBooksRegEx = new Regex( "<a href=\"(/book/bookDisplay\\.html\\?bID=[0-9]+)\">([^<]+)</a>", RegexOptions.Singleline); return newBooksRegEx.Matches(webPage); } private void AddBooksToListBox(MatchCollection books) { foreach (Match bookMatch in books) { bookList.Items.Add( new Book(bookMatch.Groups[2].Value, bookMatch.Groups[1].Value) ); } } private void GetWebPage(string url) { WebClient web = new WebClient(); web.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadComplete); web.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged); bookList.Items.Clear(); web.DownloadStringAsync(new System.Uri(url)); }
private void ProgressChanged(object sender, ProgressChangedEventArgs e) { downloadProgress.Value = e.ProgressPercentage; } private void DownloadComplete(object sender, DownloadStringCompletedEventArgs e) { downloadProgress.Value = 100; if (!e.Cancelled) { string newBooksPage = e.Result; AddBooksToListBox( GetBookDetailsFromWebPage(newBooksPage) ); } } private void bookList_DoubleClick(object sender, EventArgs e) { if (bookList.SelectedIndex != -1) { Book selectedBook = (Book)bookList.SelectedItem; browser.Navigate("http://www.apress.ru/" + selectedBook.BookURL, true); } }
} partial class Form1 {
/// <summary> /// Required designer variable. /// </summary> private System.ruponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.bookList = new System.Windows.Forms.ListBox(); this.bookCheckButton = new System.Windows.Forms.Button(); this.browser = new System.Windows.Forms.WebBrowser(); this.downloadProgress = new System.Windows.Forms.ProgressBar(); this.SuspendLayout(); // // bookList // this.bookList.FormattingEnabled = true; this.bookList.Location = new System.Drawing.Point(12, 40); this.bookList.Name = "bookList"; this.bookList.Size = new System.Drawing.Size(410, 355); this.bookList.Sorted = true; this.bookList.TabIndex = 0; this.bookList.DoubleClick += new System.EventHandler(this.bookList_DoubleClick); // // bookCheckButton // this.bookCheckButton.Location = new System.Drawing.Point(304, 11); this.bookCheckButton.Name = "bookCheckButton"; this.bookCheckButton.Size = new System.Drawing.Size(118, 23); this.bookCheckButton.TabIndex = 1; this.bookCheckButton.Text = "Check for books"; this.bookCheckButton.Click += new System.EventHandler(this.bookCheckButton_Click); // // browser // this.browser.Location = new System.Drawing.Point(0, 0); this.browser.Name = "browser"; this.browser.Size = new System.Drawing.Size(282, 34); this.browser.TabIndex = 0; this.browser.Visible = false; // // downloadProgress // this.downloadProgress.Location = new System.Drawing.Point(12, 401); this.downloadProgress.Name = "downloadProgress"; this.downloadProgress.Size = new System.Drawing.Size(410, 23); this.downloadProgress.TabIndex = 2; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(436, 447); this.Controls.Add(this.downloadProgress); this.Controls.Add(this.browser); this.Controls.Add(this.bookCheckButton); this.Controls.Add(this.bookList); this.Name = "Form1"; this.Text = "Find forthcoming Apress Books"; this.ResumeLayout(false); } #endregion private System.Windows.Forms.ListBox bookList; private System.Windows.Forms.Button bookCheckButton; private System.Windows.Forms.WebBrowser browser; private System.Windows.Forms.ProgressBar downloadProgress;
} public class OnlineBookBrowser {
/// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); }
}</source>
Simpel Web Browser with forward, backward button
<source lang="csharp">using System; using System.Windows.Forms; public class SimpleWebBrowser : Form {
public SimpleWebBrowser() { InitializeComponent(); webBrowser1.Navigate("http://www.nfex.ru"); } private void goButton_Click(object sender, EventArgs e) { webBrowser1.Navigate(textURL.Text); } private void homeButton_Click(object sender, EventArgs e) { webBrowser1.GoHome(); } private void backButton_Click(object sender, EventArgs e) { webBrowser1.GoBack(); } private void forwarButton_Click(object sender, EventArgs e) { webBrowser1.GoForward(); } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { textURL.Text = webBrowser1.Url.ToString(); if (webBrowser1.CanGoBack) { backButton.Enabled = true; } else { backButton.Enabled = false; } if (webBrowser1.CanGoForward) { forwarButton.Enabled = true; } else { forwarButton.Enabled = false; } } [STAThread] public static void Main(string[] args) { Application.Run(new SimpleWebBrowser()); } private void InitializeComponent() { this.webBrowser1 = new System.Windows.Forms.WebBrowser(); this.goButton = new System.Windows.Forms.Button(); this.textURL = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.backButton = new System.Windows.Forms.Button(); this.homeButton = new System.Windows.Forms.Button(); this.forwarButton = new System.Windows.Forms.Button(); this.SuspendLayout(); // // webBrowser1 // this.webBrowser1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.webBrowser1.Location = new System.Drawing.Point(-2, 2); this.webBrowser1.Name = "webBrowser1"; this.webBrowser1.Size = new System.Drawing.Size(685, 190); this.webBrowser1.TabIndex = 3; this.webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.webBrowser1_DocumentCompleted); // // goButton // this.goButton.Location = new System.Drawing.Point(435, 216); this.goButton.Name = "goButton"; this.goButton.Size = new System.Drawing.Size(48, 23); this.goButton.TabIndex = 1; this.goButton.Text = "Go"; this.goButton.Click += new System.EventHandler(this.goButton_Click); // // textURL // this.textURL.Location = new System.Drawing.Point(240, 217); this.textURL.Name = "textURL"; this.textURL.Size = new System.Drawing.Size(189, 20); this.textURL.TabIndex = 2; this.textURL.Text = "http://www.nfex.ru"; // // label1 // this.label1.Location = new System.Drawing.Point(206, 221); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(31, 13); this.label1.TabIndex = 0; this.label1.Text = "Go to:"; // // backButton // this.backButton.Enabled = false; this.backButton.Location = new System.Drawing.Point(227, 249); this.backButton.Name = "backButton"; this.backButton.Size = new System.Drawing.Size(75, 23); this.backButton.TabIndex = 0; this.backButton.Text = "<< Back"; this.backButton.Click += new System.EventHandler(this.backButton_Click); // // homeButton // this.homeButton.Location = new System.Drawing.Point(308, 249); this.homeButton.Name = "homeButton"; this.homeButton.Size = new System.Drawing.Size(75, 23); this.homeButton.TabIndex = 0; this.homeButton.Text = "Home"; this.homeButton.Click += new System.EventHandler(this.homeButton_Click); // // forwarButton // this.forwarButton.Enabled = false; this.forwarButton.Location = new System.Drawing.Point(389, 249); this.forwarButton.Name = "forwarButton"; this.forwarButton.Size = new System.Drawing.Size(75, 23); this.forwarButton.TabIndex = 0; this.forwarButton.Text = "Forward >>"; this.forwarButton.Click += new System.EventHandler(this.forwarButton_Click); // // SimpleWebBrowser // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(684, 303); this.Controls.Add(this.forwarButton); this.Controls.Add(this.homeButton); this.Controls.Add(this.backButton); this.Controls.Add(this.label1); this.Controls.Add(this.textURL); this.Controls.Add(this.goButton); this.Controls.Add(this.webBrowser1); this.ResumeLayout(false); this.PerformLayout(); } private System.Windows.Forms.WebBrowser webBrowser1; private System.Windows.Forms.Button goButton; private System.Windows.Forms.TextBox textURL; private System.Windows.Forms.Label label1; private System.Windows.Forms.Button backButton; private System.Windows.Forms.Button homeButton; private System.Windows.Forms.Button forwarButton;
}</source>