/* Professional Windows GUI Programming Using C# by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury, Zach Greenvoss, Shripad Kulkarni, Neil Whitlow Publisher: Peer Information ISBN: 1861007663 */ using System; using System.Windows.Forms; using System.Drawing; using AxSHDocVw; public class WebBrowser : Form { private AxWebBrowser browser; private Button goButton; private TextBox addressBox; private Panel panel1; private Panel panel2; public WebBrowser() { panel1 = new Panel(); panel2 = new Panel(); browser = new AxWebBrowser(); browser.BeginInit(); this.SuspendLayout(); panel1.SuspendLayout(); panel2.SuspendLayout(); this.Text = "MyWebBrowser"; panel1.Size = new Size(300, 30); panel1.Dock = DockStyle.Top; panel2.Size = new Size(285,240); panel2.Location = new Point(5, 31); panel2.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; browser.Dock = DockStyle.Fill; addressBox = new TextBox(); addressBox.Size = new Size(260, 20); addressBox.Location = new Point(5,5); addressBox.Anchor = AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Left; goButton = new Button(); goButton.Image = Image.FromFile("Arrow.ico"); goButton.Location = new Point(270,5); goButton.Size = new Size(20,20); goButton.Anchor = AnchorStyles.Top | AnchorStyles.Right; panel1.Controls.AddRange(new Control[] { addressBox, goButton }); panel2.Controls.Add(browser); this.Controls.AddRange(new Control[] { panel1, panel2 }); browser.EndInit(); panel1.ResumeLayout(); panel2.ResumeLayout(); this.ResumeLayout(); goButton.Click += new EventHandler(goButton_Click); browser.GoHome(); } private void goButton_Click(object sender, EventArgs e) { object o = null; browser.Navigate(addressBox.Text, ref o, ref o, ref o, ref o); } [STAThread] public static void Main() { Application.Run(new WebBrowser()); } }
Web Browser usual actions
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form { public Form1() { InitializeComponent(); } private void webBrowser1_DocumentTitleChanged(object sender, EventArgs e) { this.Text = webBrowser1.DocumentTitle.ToString(); } private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)13) { webBrowser1.Navigate(textBox1.Text); } } private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e) { textBox1.Text = webBrowser1.Url.ToString(); } private void Form1_Load(object sender, EventArgs e) { buttonBack.Enabled = false; buttonForward.Enabled = false; buttonStop.Enabled = false; } private void buttonBack_Click(object sender, EventArgs e) { webBrowser1.GoBack(); textBox1.Text = webBrowser1.Url.ToString(); } private void buttonForward_Click(object sender, EventArgs e) { webBrowser1.GoForward(); textBox1.Text = webBrowser1.Url.ToString(); } private void buttonStop_Click(object sender, EventArgs e) { webBrowser1.Stop(); } private void buttonHome_Click(object sender, EventArgs e) { webBrowser1.GoHome(); textBox1.Text = webBrowser1.Url.ToString(); } private void buttonRefresh_Click(object sender, EventArgs e) { webBrowser1.Refresh(); } private void buttonSubmit_Click(object sender, EventArgs e) { webBrowser1.Navigate(textBox1.Text); } private void webBrowser1_CanGoBackChanged(object sender, EventArgs e) { if (webBrowser1.CanGoBack == true) { buttonBack.Enabled = true; } else { buttonBack.Enabled = false; } } private void webBrowser1_CanGoForwardChanged(object sender, EventArgs e) { if (webBrowser1.CanGoForward == true) { buttonForward.Enabled = true; } else { buttonForward.Enabled = false; } } private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e) { buttonStop.Enabled = true; } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { buttonStop.Enabled = false; } private void InitializeComponent() { this.webBrowser1 = new System.Windows.Forms.WebBrowser(); this.textBox1 = new System.Windows.Forms.TextBox(); this.buttonSubmit = new System.Windows.Forms.Button(); this.buttonRefresh = new System.Windows.Forms.Button(); this.buttonHome = new System.Windows.Forms.Button(); this.buttonStop = new System.Windows.Forms.Button(); this.buttonForward = new System.Windows.Forms.Button(); this.buttonBack = new System.Windows.Forms.Button(); this.SuspendLayout(); this.webBrowser1.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.webBrowser1.Location = new System.Drawing.Point(15, 74); this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); this.webBrowser1.Size = new System.Drawing.Size(700, 339); this.webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.webBrowser1_DocumentCompleted); this.textBox1.Location = new System.Drawing.Point(14, 47); this.textBox1.Size = new System.Drawing.Size(399, 20); this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox1_KeyPress); this.buttonSubmit.Location = new System.Drawing.Point(419, 18); this.buttonSubmit.Size = new System.Drawing.Size(75, 49); this.buttonSubmit.Text = "Submit"; this.buttonSubmit.UseVisualStyleBackColor = true; this.buttonSubmit.Click += new System.EventHandler(this.buttonSubmit_Click); this.buttonRefresh.Location = new System.Drawing.Point(338, 18); this.buttonRefresh.Size = new System.Drawing.Size(75, 23); this.buttonRefresh.Text = "Refresh"; this.buttonRefresh.UseVisualStyleBackColor = true; this.buttonRefresh.Click += new System.EventHandler(this.buttonRefresh_Click); this.buttonHome.Location = new System.Drawing.Point(257, 18); this.buttonHome.Size = new System.Drawing.Size(75, 23); this.buttonHome.Text = "Home"; this.buttonHome.UseVisualStyleBackColor = true; this.buttonHome.Click += new System.EventHandler(this.buttonHome_Click); this.buttonStop.Location = new System.Drawing.Point(176, 18); this.buttonStop.Size = new System.Drawing.Size(75, 23); this.buttonStop.Text = "Stop"; this.buttonStop.UseVisualStyleBackColor = true; this.buttonStop.Click += new System.EventHandler(this.buttonStop_Click); this.buttonForward.Location = new System.Drawing.Point(95, 18); this.buttonForward.Size = new System.Drawing.Size(75, 23); this.buttonForward.Text = "Forward"; this.buttonForward.UseVisualStyleBackColor = true; this.buttonForward.Click += new System.EventHandler(this.buttonForward_Click); this.buttonBack.Location = new System.Drawing.Point(14, 18); this.buttonBack.Size = new System.Drawing.Size(75, 23); this.buttonBack.Text = "Back"; this.buttonBack.UseVisualStyleBackColor = true; this.buttonBack.Click += new System.EventHandler(this.buttonBack_Click); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(728, 430); this.Controls.Add(this.webBrowser1); this.Controls.Add(this.textBox1); this.Controls.Add(this.buttonSubmit); this.Controls.Add(this.buttonRefresh); this.Controls.Add(this.buttonHome); this.Controls.Add(this.buttonStop); this.Controls.Add(this.buttonForward); this.Controls.Add(this.buttonBack); this.ResumeLayout(false); this.PerformLayout(); } private System.Windows.Forms.WebBrowser webBrowser1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Button buttonSubmit; private System.Windows.Forms.Button buttonRefresh; private System.Windows.Forms.Button buttonHome; private System.Windows.Forms.Button buttonStop; private System.Windows.Forms.Button buttonForward; private System.Windows.Forms.Button buttonBack; [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }
UpDown Control
/* Professional Windows GUI Programming Using C# by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury, Zach Greenvoss, Shripad Kulkarni, Neil Whitlow Publisher: Peer Information ISBN: 1861007663 */ using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace UpDown { /// <summary> /// Summary description for UpDown. /// </summary> public class UpDown : System.Windows.Forms.Form { private System.Windows.Forms.Button button2; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Button button1; private System.Windows.Forms.DomainUpDown UPDOWN_DOMAIN; private System.Windows.Forms.Label label1; /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.Container components = null; public UpDown() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // } /// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (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.button2 = new System.Windows.Forms.Button(); this.textBox1 = new System.Windows.Forms.TextBox(); this.button1 = new System.Windows.Forms.Button(); this.UPDOWN_DOMAIN = new System.Windows.Forms.DomainUpDown(); this.label1 = new System.Windows.Forms.Label(); this.SuspendLayout(); // // button2 // this.button2.Location = new System.Drawing.Point(136, 80); this.button2.Name = "button2"; this.button2.TabIndex = 8; this.button2.Text = "Add Item"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(24, 80); this.textBox1.Name = "textBox1"; this.textBox1.TabIndex = 7; this.textBox1.Text = ""; // // button1 // this.button1.Location = new System.Drawing.Point(264, 40); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(64, 23); this.button1.TabIndex = 6; this.button1.Text = "Remove"; // // UPDOWN_DOMAIN // this.UPDOWN_DOMAIN.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(255)), ((System.Byte)(192)), ((System.Byte)(192))); this.UPDOWN_DOMAIN.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.UPDOWN_DOMAIN.ForeColor = System.Drawing.SystemColors.HotTrack; this.UPDOWN_DOMAIN.Location = new System.Drawing.Point(24, 40); this.UPDOWN_DOMAIN.Name = "UPDOWN_DOMAIN"; this.UPDOWN_DOMAIN.Size = new System.Drawing.Size(232, 26); this.UPDOWN_DOMAIN.Sorted = true; this.UPDOWN_DOMAIN.TabIndex = 5; this.UPDOWN_DOMAIN.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.UPDOWN_DOMAIN.UpDownAlign = System.Windows.Forms.LeftRightAlignment.Left; this.UPDOWN_DOMAIN.Wrap = true; // // label1 // this.label1.Location = new System.Drawing.Point(24, 16); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(136, 23); this.label1.TabIndex = 9; this.label1.Text = "UpDownDomain Control"; // // UpDown // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(344, 117); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.label1, this.UPDOWN_DOMAIN, this.button1, this.button2, this.textBox1}); this.Name = "UpDown"; this.Text = "UpDownDomain Control"; this.Load += new System.EventHandler(this.UpDown_Load); this.ResumeLayout(false); } #endregion /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.Run(new UpDown()); } private void UpDown_Load(object sender, System.EventArgs e) { // Populate the UpDown Domain control with string objects UPDOWN_DOMAIN.Items.Add("Visual C#"); UPDOWN_DOMAIN.Items.Add("Visual C++"); UPDOWN_DOMAIN.Items.Add("Visual VB"); UPDOWN_DOMAIN.Items.Add("Managed C++"); UPDOWN_DOMAIN.Items.Add("Crystal Reports"); UPDOWN_DOMAIN.Items.Add("MFC"); UPDOWN_DOMAIN.Items.Add("ATL"); UPDOWN_DOMAIN.Items.Add("COM"); UPDOWN_DOMAIN.Items.Add("DCOM"); UPDOWN_DOMAIN.Items.Add("COM+"); UPDOWN_DOMAIN.Items.Add("SETUP"); UPDOWN_DOMAIN.Items.Add("COMMAND LINE"); UPDOWN_DOMAIN.Items.Add("WINDOWS SERVICE"); UPDOWN_DOMAIN.Items.Add("WINDOWS LIBRARY"); UPDOWN_DOMAIN.Items.Add("ASP .NET WEB"); UPDOWN_DOMAIN.Items.Add("DATABASE APPLICATION"); } private void button1_Click(object sender, System.EventArgs e) { // Select the Item that want to remove int nItemSel = UPDOWN_DOMAIN.SelectedIndex; if ( nItemSel >= 0 ) { // Remove the item at the location UPDOWN_DOMAIN.Items.RemoveAt(nItemSel); // Update the control UPDOWN_DOMAIN.Update(); // Clear the edit box UPDOWN_DOMAIN.Text = "" ; } } private void button2_Click(object sender, System.EventArgs e) { if ( textBox1.Text == "" ) { MessageBox.Show("Enter a string to add"); return ; } // Add the new string the UpDownDomain control UPDOWN_DOMAIN.Items.Add(textBox1.Text); textBox1.Text = "" ; } } }
UpDown Derived
/*
Professional Windows GUI Programming Using C#
by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury,
Zach Greenvoss, Shripad Kulkarni, Neil Whitlow
Publisher: Peer Information
ISBN: 1861007663
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace UpDown_Derived
{
///
///
public class UpDownDerived : System.Windows.Forms.Form
{
///
///
private System.ComponentModel.Container components = null;
private System.Windows.Forms.Label label1;
private MyUpDownControl mDC = null ;
public UpDownDerived()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
///
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.mDC = new UpDown_Derived.MyUpDownControl();
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// mDC
//
this.mDC.Items.Add(“FRANCE”);
this.mDC.Items.Add(“ITALY”);
this.mDC.Items.Add(“USA”);
this.mDC.Items.Add(“UK”);
this.mDC.Items.Add(“AUSTRALIA”);
this.mDC.Items.Add(“INDIA”);
this.mDC.Items.Add(“ZAMBIA”);
this.mDC.Items.Add(“MALASYIA”);
this.mDC.Location = new System.Drawing.Point(40, 40);
this.mDC.Name = “mDC”;
this.mDC.TabIndex = 0;
//
// label1
//
this.label1.Location = new System.Drawing.Point(16, 16);
this.label1.Name = “label1”;
this.label1.Size = new System.Drawing.Size(200, 16);
this.label1.TabIndex = 1;
this.label1.Text = “Derived DomainUpDown Controller”;
//
// UpDownDerived
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(248, 85);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.label1,
this.mDC});
this.Name = “UpDownDerived”;
this.Text = “My Domain Controller”;
this.Load += new System.EventHandler(this.UpDownDerived_Load);
this.ResumeLayout(false);
}
#endregion
///
///
[STAThread]
static void Main()
{
Application.Run(new UpDownDerived());
}
private void UpDownDerived_Load(object sender, System.EventArgs e)
{
}
}
///
///
public class MyUpDownControl : System.Windows.Forms.DomainUpDown
{
private int currentPos =0;
private string DisplayText =””;
public MyUpDownControl()
{
// Populate the control with items
Items.Add(“FRANCE”);
Items.Add(“ITALY”);
Items.Add(“USA”);
Items.Add(“UK”);
Items.Add(“AUSTRALIA”);
Items.Add(“INDIA”);
Items.Add(“ZAMBIA”);
Items.Add(“MALASYIA”);
}
public override void DownButton()
{
// Check if the Down Arrow is clicked
currentPos ++;
if ( currentPos >= Items.Count )
currentPos = 0 ;
UpdateEditText();
}
public override void UpButton()
{
// Check if the Up Arrow is clicked
currentPos — ;
if ( currentPos < 0 ) currentPos = Items.Count-1 ;
UpdateEditText();
}
protected override void UpdateEditText()
{
// Update the EditBox
DisplayText = (string)this.Items[currentPos ];
this.Text = DisplayText;
}
public void Sort()
{
if ( this.Sorted )
this.Sorted= false ;
else
this.Sorted= true ;
if ( this.Sorted )
this.Sort() ;
UpdateEditText() ;
}
}
}
[/csharp]
subclass System.Windows.Forms.UserControl to create custom control
using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Data; using System.Windows.Forms; public class UserControl1 : System.Windows.Forms.UserControl { private System.ComponentModel.Container components = null; public UserControl1() { this.Name = "UserControl1"; this.Paint += new System.Windows.Forms.PaintEventHandler(this.OnPaint); } private void OnPaint(object sender, System.Windows.Forms.PaintEventArgs e) { e.Graphics.DrawString("Hello world", Font, new SolidBrush(Color.Blue), ClientRectangle); } } public class Form1 : System.Windows.Forms.Form { private System.ComponentModel.Container components = null; private System.Windows.Forms.Label label1; private UserControl1 control1; public Form1() { this.control1 = new UserControl1(); this.label1 = new System.Windows.Forms.Label(); this.SuspendLayout(); this.control1.Location = new System.Drawing.Point(32, 48); this.control1.Size = new System.Drawing.Size(80, 24); this.label1.Location = new System.Drawing.Point(32, 24); this.label1.Size = new System.Drawing.Size(144, 24); this.label1.Text = "Custom Control:"; this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.label1, this.control1}); this.ResumeLayout(false); } [STAThread] static void Main() { Application.Run(new Form1()); } }
Draw a Custom Control
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; public class SimpleCustomControl : System.Windows.Forms.Control { public SimpleCustomControl() { InitializeComponent(); } private void SimpleCustomControl_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.FillRectangle(Brushes.Yellow, ClientRectangle); g.DrawString("Hello, world", Font, Brushes.Black, 0, 0); } private void InitializeComponent() { this.SuspendLayout(); this.Paint += new System.Windows.Forms.PaintEventHandler(this.SimpleCustomControl_Paint); this.ResumeLayout(false); } } public class Form1 : Form { public Form1() { InitializeComponent(); } private void InitializeComponent() { this.simpleCustomControl1 = new SimpleCustomControl(); this.SuspendLayout(); this.simpleCustomControl1.Location = new System.Drawing.Point(12, 12); this.simpleCustomControl1.Size = new System.Drawing.Size(178, 110); this.simpleCustomControl1.Text = "simpleCustomControl1"; this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 268); this.Controls.Add(this.simpleCustomControl1); this.ResumeLayout(false); } private SimpleCustomControl simpleCustomControl1; [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } }
Define user control
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form { private ClockUserControl clockUserControl1; public Form1() { InitializeComponent(); } private void InitializeComponent() { this.clockUserControl1 = new ClockUserControl(); this.SuspendLayout(); // // clockUserControl1 // this.clockUserControl1.Location = new System.Drawing.Point(12, 12); this.clockUserControl1.Name = "clockUserControl1"; this.clockUserControl1.Size = new System.Drawing.Size(154, 74); this.clockUserControl1.TabIndex = 0; // // Clock // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(178, 99); this.Controls.Add(this.clockUserControl1); this.Name = "Clock"; this.Text = "Clock"; this.ResumeLayout(false); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } } public class ClockUserControl : UserControl { private System.Windows.Forms.Label displayLabel; private System.Windows.Forms.Timer clockTimer; public ClockUserControl() { InitializeComponent(); } private void clockTimer_Tick(object sender, EventArgs e) { displayLabel.Text = DateTime.Now.ToLongTimeString(); } private void InitializeComponent() { this.displayLabel = new System.Windows.Forms.Label(); this.clockTimer = new System.Windows.Forms.Timer( new System.ComponentModel.Container() ); this.SuspendLayout(); // // displayLabel // this.displayLabel.BackColor = System.Drawing.SystemColors.ActiveCaptionText; this.displayLabel.Font = new System.Drawing.Font( "Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ( ( byte ) ( 0 ) ) ); this.displayLabel.Location = new System.Drawing.Point( 4, 10 ); this.displayLabel.Name = "displayLabel"; this.displayLabel.Size = new System.Drawing.Size( 143, 52 ); this.displayLabel.TabIndex = 0; this.displayLabel.Text = "12:55:55 AM"; this.displayLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // clockTimer // this.clockTimer.Enabled = true; this.clockTimer.Interval = 1000; this.clockTimer.Tick += new System.EventHandler( this.clockTimer_Tick ); // // ClockUserControl // this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.White; this.Controls.Add( this.displayLabel ); this.Name = "ClockUserControl"; this.Size = new System.Drawing.Size( 150, 72 ); this.ResumeLayout( false ); } }