using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Threading;
public class Form1 : System.Windows.Forms.Form {
private System.Windows.Forms.ProgressBar progressBar1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private Thread fThread = null;
private System.ComponentModel.Container components = null;
public Form1() {
this.progressBar1 = new System.Windows.Forms.ProgressBar();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
this.progressBar1.Location = new System.Drawing.Point(24, 32);
this.progressBar1.Name = "progressBar1";
this.progressBar1.Size = new System.Drawing.Size(264, 23);
this.progressBar1.TabIndex = 0;
this.button1.Location = new System.Drawing.Point(24, 80);
this.button1.Size = new System.Drawing.Size(136, 40);
this.button1.Text = "Start Thread";
this.button1.Click += new
System.EventHandler(this.button1_Click);
this.button2.Location = new System.Drawing.Point(168, 80);
this.button2.Size = new System.Drawing.Size(120, 40);
this.button2.Text = "Stop Thread";
this.button2.Click += new
System.EventHandler(this.button2_Click);
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(704, 429);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button2,
this.button1,
this.progressBar1});
this.ResumeLayout(false);
}
protected override void Dispose(bool disposing) {
if (fThread != null) {
fThread.Interrupt();
fThread = null;
}
}
[STAThread]
static void Main() {
Application.Run(new Form1());
}
private void UpdateProgress() {
if (progressBar1.Value == progressBar1.Maximum) {
progressBar1.Value = progressBar1.Minimum;
}
progressBar1.PerformStep();
}
public void ThreadProc() {
try {
MethodInvoker mi = new MethodInvoker(this.UpdateProgress);
while (true) {
this.BeginInvoke(mi);
Thread.Sleep(500);
}
} catch (ThreadInterruptedException e) {
Console.WriteLine(
"Interruption Exception in Thread: {0}",
e);
} catch (Exception we) {
Console.WriteLine("Exception in Thread: {0}", we);
}
}
private void button1_Click(object sender, System.EventArgs e) {
fThread = new Thread(new ThreadStart(ThreadProc));
fThread.IsBackground = true;
fThread.Start();
}
private void button2_Click(object sender, System.EventArgs e) {
fThread.Interrupt();
fThread = null;
}
}
Background processing in a thread.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Threading;
public class Form1 : System.Windows.Forms.Form {
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label ValueLabel;
private System.Windows.Forms.Button button2;
private System.ComponentModel.Container components = null;
private Thread fThread;
private int fValue;
public Form1() {
fValue = 0;
this.label1 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.ValueLabel = new System.Windows.Forms.Label();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
this.label1.Location = new System.Drawing.Point(24, 32);
this.label1.Size = new System.Drawing.Size(80, 16);
this.label1.Text = “Value of Data:”;
this.button1.Location = new System.Drawing.Point(232, 32);
this.button1.Text = “&Update”;
this.button1.Click += new
System.EventHandler(this.button1_Click);
this.ValueLabel.Location = new System.Drawing.Point(120, 32);
this.button2.Location = new System.Drawing.Point(104, 88);
this.button2.Name = “button2”;
this.button2.RightToLeft =
System.Windows.Forms.RightToLeft.No;
this.button2.Size = new System.Drawing.Size(96, 23);
this.button2.Text = “Start Thread”;
this.button2.Click += new
System.EventHandler(this.button2_Click);
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(336, 141);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button2,
this.ValueLabel,
this.button1,
this.label1});
this.ResumeLayout(false);
}
[STAThread]
static void Main() {
Application.Run(new Form1());
}
private void ThreadProc() {
while (fValue < 1000) {
Thread.Sleep(1000);
fValue++;
}
}
private void button2_Click(object sender, System.EventArgs e) {
fThread = new Thread(new ThreadStart(ThreadProc));
fThread.IsBackground = true;
fThread.Start();
}
private void button1_Click(object sender, System.EventArgs e) {
this.ValueLabel.Text = fValue.ToString();
}
}
[/csharp]
Starting and stopping a thread.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Threading;
public class Form1 : System.Windows.Forms.Form {
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label NumThreads;
private System.Windows.Forms.Label Counter;
private int fCounter;
private ArrayList fThreadList;
private System.ComponentModel.Container components = null;
public Form1() {
InitializeComponent();
fThreadList = new ArrayList();
}
protected override void Dispose(bool disposing) {
if (disposing) {
if (components != null) {
components.Dispose();
for (int i = 0; i < fThreadList.Count; ++i) { Thread fThread = (Thread)fThreadList[i]; fThread.Abort(); } } } base.Dispose(disposing); } private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.NumThreads = new System.Windows.Forms.Label(); this.Counter = new System.Windows.Forms.Label(); this.SuspendLayout(); this.button1.Location = new System.Drawing.Point(32, 104); this.button1.Name = "button1"; this.button1.TabIndex = 0; this.button1.Text = "&Start"; this.button1.Click += new System.EventHandler(this.button1_Click); this.button2.Location = new System.Drawing.Point(136, 104); this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(88, 24); this.button2.TabIndex = 1; this.button2.Text = "&Stop"; this.button2.Click += new System.EventHandler(this.button2_Click); this.label1.Location = new System.Drawing.Point(32, 40); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(152, 16); this.label1.TabIndex = 2; this.label1.Text = "Number of Threads Running:"; this.label2.Location = new System.Drawing.Point(32, 64); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(100, 16); this.label2.TabIndex = 3; this.label2.Text = "Counter:"; this.NumThreads.Location = new System.Drawing.Point(192, 40); this.NumThreads.Name = "NumThreads"; this.NumThreads.Size = new System.Drawing.Size(64, 16); this.NumThreads.TabIndex = 4; this.Counter.Location = new System.Drawing.Point(192, 64); this.Counter.Name = "Counter"; this.Counter.Size = new System.Drawing.Size(64, 16); this.Counter.TabIndex = 5; this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(272, 165); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.Counter, this.NumThreads, this.label2, this.label1, this.button2, this.button1}); this.ResumeLayout(false); } [STAThread] static void Main() { Application.Run(new Form1()); } protected void ThreadFunc() { Boolean done = false; while (!done) { Thread.Sleep(1000); fCounter++; this.Counter.Text = fCounter.ToString(); } } private void button1_Click(object sender, System.EventArgs e) { Thread fThread = new Thread(new ThreadStart(ThreadFunc)); fThread.Start(); fThreadList.Add(fThread); this.NumThreads.Text = fThreadList.Count.ToString(); } private void button2_Click(object sender, System.EventArgs e) { Thread fThread = (Thread)fThreadList[fThreadList.Count - 1]; fThread.Abort(); fThreadList.Remove(fThread); this.NumThreads.Text = fThreadList.Count.ToString(); } } [/csharp]
TextBox Demo
/*
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 TextBox
{
/// <summary>
/// Summary description for TextBox.
/// </summary>
public class TextBox : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox SINGLE_LINE;
private System.Windows.Forms.TextBox PASSWORD_LINE;
private System.Windows.Forms.TextBox MULTI_LINE;
private System.Windows.Forms.RichTextBox RICH_EDIT;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public TextBox()
{
//
// 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.SINGLE_LINE = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.PASSWORD_LINE = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.MULTI_LINE = new System.Windows.Forms.TextBox();
this.RICH_EDIT = new System.Windows.Forms.RichTextBox();
this.label4 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// SINGLE_LINE
//
this.SINGLE_LINE.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
this.SINGLE_LINE.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(128)), ((System.Byte)(64)), ((System.Byte)(64)));
this.SINGLE_LINE.Location = new System.Drawing.Point(32, 40);
this.SINGLE_LINE.Name = "SINGLE_LINE";
this.SINGLE_LINE.Size = new System.Drawing.Size(408, 20);
this.SINGLE_LINE.TabIndex = 0;
this.SINGLE_LINE.Text = "THIS IS A SINGLELINE EDIT CONTROL";
//
// label1
//
this.label1.Location = new System.Drawing.Point(32, 24);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(168, 16);
this.label1.TabIndex = 1;
this.label1.Text = "Single Line TextBox";
//
// PASSWORD_LINE
//
this.PASSWORD_LINE.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.PASSWORD_LINE.Location = new System.Drawing.Point(32, 104);
this.PASSWORD_LINE.Name = "PASSWORD_LINE";
this.PASSWORD_LINE.PasswordChar = '^';
this.PASSWORD_LINE.Size = new System.Drawing.Size(104, 22);
this.PASSWORD_LINE.TabIndex = 2;
this.PASSWORD_LINE.Text = "";
//
// label2
//
this.label2.Location = new System.Drawing.Point(32, 80);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(160, 16);
this.label2.TabIndex = 3;
this.label2.Text = "Password TextBox";
//
// label3
//
this.label3.Location = new System.Drawing.Point(32, 136);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(120, 16);
this.label3.TabIndex = 4;
this.label3.Text = "MultiLine TextBox";
//
// MULTI_LINE
//
this.MULTI_LINE.AcceptsReturn = true;
this.MULTI_LINE.AcceptsTab = true;
this.MULTI_LINE.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic), System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.MULTI_LINE.ForeColor = System.Drawing.SystemColors.HotTrack;
this.MULTI_LINE.Location = new System.Drawing.Point(32, 160);
this.MULTI_LINE.MaxLength = 10000;
this.MULTI_LINE.Multiline = true;
this.MULTI_LINE.Name = "MULTI_LINE";
this.MULTI_LINE.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.MULTI_LINE.Size = new System.Drawing.Size(408, 104);
this.MULTI_LINE.TabIndex = 5;
this.MULTI_LINE.Text = "";
//
// RICH_EDIT
//
this.RICH_EDIT.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.RICH_EDIT.ForeColor = System.Drawing.Color.Red;
this.RICH_EDIT.Location = new System.Drawing.Point(32, 296);
this.RICH_EDIT.Name = "RICH_EDIT";
this.RICH_EDIT.ShowSelectionMargin = true;
this.RICH_EDIT.Size = new System.Drawing.Size(408, 120);
this.RICH_EDIT.TabIndex = 6;
this.RICH_EDIT.Text = "richTextBox1";
this.RICH_EDIT.ZoomFactor = 4.999695F;
//
// label4
//
this.label4.Location = new System.Drawing.Point(32, 272);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(152, 16);
this.label4.TabIndex = 7;
this.label4.Text = "RichEdit Text Box";
//
// TextBox
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(464, 453);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.label4,
this.RICH_EDIT,
this.MULTI_LINE,
this.label3,
this.label2,
this.PASSWORD_LINE,
this.label1,
this.SINGLE_LINE});
this.Name = "TextBox";
this.Text = "TextBox Controls";
this.Load += new System.EventHandler(this.TextBox_Load);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new TextBox());
}
private void TextBox_Load(object sender, System.EventArgs e)
{
RICH_EDIT.LoadFile("c: empRTFDOC.RTF");
}
}
}
TextBox and button on form
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace Form
{
/// <summary>
/// Summary description for ButtonTextForm.
/// </summary>
public class ButtonTextForm : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.TextBox textBox1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public ButtonTextForm()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
#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.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(61, 159);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(85, 37);
this.button1.TabIndex = 1;
this.button1.Text = "button1";
//
// button2
//
this.button2.Location = new System.Drawing.Point(196, 159);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(95, 37);
this.button2.TabIndex = 2;
this.button2.Text = "button2";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(41, 37);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(262, 22);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "textBox1";
//
// ButtonTextForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
this.ClientSize = new System.Drawing.Size(340, 280);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button1,
this.button2,
this.textBox1});
this.Name = "ButtonTextForm";
this.Text = "ButtonTextForm";
this.Load += new System.EventHandler(this.ButtonTextForm_Load);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new ButtonTextForm());
}
private void ButtonTextForm_Load(object sender, System.EventArgs e)
{
}
private void button2_Click(object sender, System.EventArgs e)
{
Application.Exit ();
}
private void button1_Click(object sender, System.EventArgs e)
{
MessageBox.Show (this,
textBox1.Text, "Text Box",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Exclamation);
}
}
}
TextBox and ListBox
using System;
using System.Drawing;
using System.Windows.Forms;
public class WindowSample : Form
{
private TextBox data;
private ListBox results;
public WindowSample()
{
Text = "Sample Window Program";
Size = new Size(400, 380);
Label label1 = new Label();
label1.Parent = this;
label1.Text = "Enter text string:";
label1.AutoSize = true;
label1.Location = new Point(10, 10);
data = new TextBox();
data.Parent = this;
data.Size = new Size(200, 2 * Font.Height);
data.Location = new Point(10, 35);
results = new ListBox();
results.Parent = this;
results.Location = new Point(10, 65);
results.Size = new Size(350, 20 * Font.Height);
Button checkit = new Button();
checkit.Parent = this;
checkit.Text = "test";
checkit.Location = new Point(235,32);
checkit.Size = new Size(7 * Font.Height, 2 * Font.Height);
checkit.Click += new EventHandler(ButtonOnClick);
}
void ButtonOnClick(object obj, EventArgs ea)
{
results.Items.Add(data.Text);
data.Clear();
}
public static void Main()
{
Application.Run(new WindowSample());
}
}
Label, TextBox and Button
/*
User Interfaces in C#: Windows Forms and Custom Controls
by Matthew MacDonald
Publisher: Apress
ISBN: 1590590457
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace ControlMedley
{
/// <summary>
/// Summary description for ControlMedley.
/// </summary>
public class ControlMedley : System.Windows.Forms.Form
{
internal System.Windows.Forms.Label Label1;
internal System.Windows.Forms.TextBox TextBox1;
internal System.Windows.Forms.Button Button1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public ControlMedley()
{
//
// 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.Label1 = new System.Windows.Forms.Label();
this.TextBox1 = new System.Windows.Forms.TextBox();
this.Button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// Label1
//
this.Label1.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.Label1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.Label1.Location = new System.Drawing.Point(20, 92);
this.Label1.Name = "Label1";
this.Label1.Size = new System.Drawing.Size(112, 24);
this.Label1.TabIndex = 5;
this.Label1.Text = "Label1";
this.Label1.Click += new System.EventHandler(this.ctrlClick);
//
// TextBox1
//
this.TextBox1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.TextBox1.Location = new System.Drawing.Point(20, 56);
this.TextBox1.Name = "TextBox1";
this.TextBox1.Size = new System.Drawing.Size(156, 21);
this.TextBox1.TabIndex = 4;
this.TextBox1.Text = "TextBox1";
this.TextBox1.Click += new System.EventHandler(this.ctrlClick);
//
// Button1
//
this.Button1.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.Button1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.Button1.Location = new System.Drawing.Point(20, 16);
this.Button1.Name = "Button1";
this.Button1.Size = new System.Drawing.Size(96, 28);
this.Button1.TabIndex = 3;
this.Button1.Text = "Button1";
this.Button1.Click += new System.EventHandler(this.ctrlClick);
//
// ControlMedley
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);
this.ClientSize = new System.Drawing.Size(316, 214);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.Label1,
this.TextBox1,
this.Button1});
this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.Name = "ControlMedley";
this.Text = "Control Medley";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new ControlMedley());
}
private void ctrlClick(System.Object sender, EventArgs e)
{
Control ctrl = (Control)sender;
MessageBox.Show("You clicked: " + ctrl.Name);
}
}
}

