Csharp/C Sharp/GUI Windows Form/TextBox

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Add ScrollBars to TextBox

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class NotepadCloneNoMenu: Form {

    protected TextBox txtbox;
  
    public static void Main()
    {
         Application.Run(new NotepadCloneNoMenu());
    }
    public NotepadCloneNoMenu()
    {
         Text = "Notepad Clone No Menu";
  
         txtbox             = new TextBox();
         txtbox.Parent      = this;
         txtbox.Dock        = DockStyle.Fill;
         txtbox.BorderStyle = BorderStyle.None;
         txtbox.Multiline   = true;
         txtbox.ScrollBars  = ScrollBars.Both;
         txtbox.AcceptsTab  = true;
    }

}

</source>


All cap text textbox

<source lang="csharp">

   using System;
   using System.Drawing;
   using System.Collections;
   using System.ruponentModel;
   using System.Windows.Forms;
   using System.Data;
 public class TextForm : System.Windows.Forms.Form
   {
   private System.Windows.Forms.Button btnPasswordDecoderRing;
   private System.Windows.Forms.Label label3;
   private System.Windows.Forms.TextBox passwordBox;
   private System.Windows.Forms.Label label2;
   private System.Windows.Forms.TextBox capsOnlyBox;
   private System.Windows.Forms.Button btnGetMultiLineText;
   private System.Windows.Forms.Label label1;
   private System.Windows.Forms.TextBox multiLineBox;
       public TextForm()
       {
           InitializeComponent();
       }
   private void InitializeComponent()
   {
     this.capsOnlyBox = new System.Windows.Forms.TextBox();
     this.multiLineBox = new System.Windows.Forms.TextBox();
     this.label1 = new System.Windows.Forms.Label();
     this.label2 = new System.Windows.Forms.Label();
     this.passwordBox = new System.Windows.Forms.TextBox();
     this.btnGetMultiLineText = new System.Windows.Forms.Button();
     this.btnPasswordDecoderRing = new System.Windows.Forms.Button();
     this.label3 = new System.Windows.Forms.Label();
     this.capsOnlyBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
     this.capsOnlyBox.Location = new System.Drawing.Point(14, 176);
     this.capsOnlyBox.Size = new System.Drawing.Size(120, 20);
     this.capsOnlyBox.TabIndex = 3;
     this.multiLineBox.AcceptsReturn = true;
     this.multiLineBox.AcceptsTab = true;
     this.multiLineBox.Location = new System.Drawing.Point(152, 8);
     this.multiLineBox.Multiline = true;
     this.multiLineBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
     this.multiLineBox.Size = new System.Drawing.Size(240, 104);
     this.multiLineBox.TabIndex = 0;
     this.multiLineBox.Text = "Get text from multiline textbox";
     this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F);
     this.label1.Location = new System.Drawing.Point(8, 8);
     this.label1.Size = new System.Drawing.Size(136, 56);
     this.label1.TabIndex = 1;
     this.label1.Text = "this is a multiline text box";
     this.label2.Font = new System.Drawing.Font("Comic Sans MS", 12F);
     this.label2.Location = new System.Drawing.Point(14, 144);
     this.label2.Size = new System.Drawing.Size(106, 24);
     this.label2.TabIndex = 4;
     this.label2.Text = "Caps only!!";
     this.passwordBox.Location = new System.Drawing.Point(160, 176);
     this.passwordBox.PasswordChar = "$";
     this.passwordBox.Size = new System.Drawing.Size(232, 20);
     this.passwordBox.TabIndex = 5;
     this.passwordBox.Text = "password";
     this.btnGetMultiLineText.Location = new System.Drawing.Point(13, 72);
     this.btnGetMultiLineText.Size = new System.Drawing.Size(120, 32);
     this.btnGetMultiLineText.TabIndex = 2;
     this.btnGetMultiLineText.Text = "Get Text";
     this.btnGetMultiLineText.Click += new System.EventHandler(this.btnGetMultiLineText_Click);
     this.btnPasswordDecoderRing.Location = new System.Drawing.Point(280, 144);
     this.btnPasswordDecoderRing.Size = new System.Drawing.Size(112, 24);
     this.btnPasswordDecoderRing.TabIndex = 7;
     this.btnPasswordDecoderRing.Text = "Decode Password";
     this.btnPasswordDecoderRing.Click += new System.EventHandler(this.btnPasswordDecoderRing_Click);
     this.label3.Font = new System.Drawing.Font("Comic Sans MS", 12F);
     this.label3.Location = new System.Drawing.Point(152, 144);
     this.label3.Size = new System.Drawing.Size(120, 24);
     this.label3.TabIndex = 6;
     this.label3.Text = "Password Box";
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(408, 221);
     this.Controls.AddRange(new System.Windows.Forms.Control[] {this.btnPasswordDecoderRing,
                                     this.label3,
                                     this.passwordBox,
                                     this.label2,
                                     this.capsOnlyBox,
                                     this.btnGetMultiLineText,
                                     this.label1,
                                     this.multiLineBox});
     this.Text = "TextBox Types";
   }
   protected void btnPasswordDecoderRing_Click (object sender, System.EventArgs e)
   {
     MessageBox.Show(passwordBox.Text, "Your password is:");
   }
   protected void btnGetMultiLineText_Click (object sender, System.EventArgs e)
   {
     MessageBox.Show(multiLineBox.Text, "Here is your text");
   }
       public static void Main(string[] args) 
       {
           Application.Run(new TextForm());
       }
   }
          
      </source>


A simple text editor

<source lang="csharp"> using System; using System.Drawing; using System.IO; using System.Windows.Forms; public class MenuDialog : Form {

 TextBox text = new TextBox();
 public MenuDialog() {
   Size = new Size(500,200);
   text.Size = new Size(490,190);
   text.Multiline = true;
   text.ScrollBars = ScrollBars.Both;
   text.WordWrap = false;
   text.Location = new Point(5,5);
   MenuItem fileMenu = new MenuItem("File");
   MenuItem open = new MenuItem("Open");
   open.Shortcut = Shortcut.CtrlO;
   MenuItem save = new MenuItem("Save");
   save.Shortcut = Shortcut.CtrlS;
   fileMenu.MenuItems.Add(open);
   fileMenu.MenuItems.Add(save);
   MenuItem formatMenu = new MenuItem("Format");
   MenuItem font = new MenuItem("Font");
   font.Shortcut = Shortcut.CtrlF;
   formatMenu.MenuItems.Add(font);
    
   MainMenu bar = new MainMenu();
   Menu = bar;
   bar.MenuItems.Add(fileMenu);
   bar.MenuItems.Add(formatMenu);
   Controls.Add(text);
   open.Click += new EventHandler(Open_Click);
   save.Click += new EventHandler(Save_Click);
   font.Click += new EventHandler(Font_Click); 
 }
 
 protected void Open_Click(Object sender, EventArgs e) {
   OpenFileDialog o = new OpenFileDialog();
   if(o.ShowDialog() == DialogResult.OK) {
     Stream file = o.OpenFile();
     StreamReader reader = new StreamReader(file);
     char[] data = new char[file.Length];
     reader.ReadBlock(data,0,(int)file.Length);
     text.Text = new String(data);  
     reader.Close();
   }
 }
 protected void Save_Click(Object sender, EventArgs e) {
   SaveFileDialog s = new SaveFileDialog();
   if(s.ShowDialog() == DialogResult.OK) {
     StreamWriter writer = new StreamWriter(s.OpenFile());
     writer.Write(text.Text);
     writer.Close();
   }
 }
 protected void Font_Click(Object sender, EventArgs e) {
   FontDialog f = new FontDialog();
   if(f.ShowDialog() == DialogResult.OK) 
     text.Font = f.Font;
 }
 public static void Main() {
   Application.Run(new MenuDialog());
 }

}

      </source>


Convert TextBox input to double value

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms; public class EnterPrice : Form {

 private Button enter = new Button();
 private Label answer = new Label();
 private TextBox text = new TextBox( );
 public EnterPrice( ) {
   enter.Text = "Enter Price";
   text.Text = "";
   answer.Text = "";
   Size = new Size(300,200);
   answer.Size = new Size(200,50);
   enter.Location = new Point(30 + enter.Width, 30);
   text.Location = new Point (40 + enter.Width + enter.Width, 30);
   answer.Location = new Point(20, 60);
   AcceptButton = enter;
   Controls.Add(text);
   Controls.Add(answer);
   Controls.Add(enter);
   enter.Click += new EventHandler(Enter_Click);
 }
 protected void Enter_Click(Object sender, EventArgs e) {
   try{
   Console.WriteLine(Double.Parse(text.Text));
   }catch(Exception){
   }
   text.Text = "";
   text.Focus();
 }
 static void Main() {
   Application.Run(new EnterPrice());
 }

}

      </source>


Data Checker

<source lang="csharp"> /* 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.ruponentModel; using System.Windows.Forms; using System.Data; using System.Data.SqlClient; using System.Threading;

namespace DataChecker {

   /// <summary>
   /// Summary description for Form1.
   /// </summary>
   public class DataChecker : System.Windows.Forms.Form
   {
       private System.Windows.Forms.TextBox txtCoffeePrice;
       private System.Windows.Forms.TextBox txtTeaPrice;
       private System.Windows.Forms.TextBox txtGoldPrice;
       private System.Windows.Forms.Label lblCoffeePrice;
       private System.Windows.Forms.Label lblTeaPrice;
       private System.Windows.Forms.Label lblGoldPrice;
       private int lastCoffeePrice = 0;
       private int lastTeaPrice = 0;
       private int lastGoldPrice = 0;
       private int allUpdates = 0;
       /// <summary>
       /// Required designer variable.
       /// </summary>
       private System.ruponentModel.Container components = null;
       private System.Threading.Timer t1 = null;
       private System.Threading.Timer t2 = null;
       private System.Threading.Timer t3 = null;
       public DataChecker()
       {
           //
           // Required for Windows Form Designer support
           //
           InitializeComponent();
           //
           // TODO: Add any constructor code after InitializeComponent call
           //
           t1 = new System.Threading.Timer(new TimerCallback(Timer_Callback), "C", 0, 500);
           t2 = new System.Threading.Timer(new TimerCallback(Timer_Callback), "T", 1, 500);
           t3 = new System.Threading.Timer(new TimerCallback(Timer_Callback), "G", 2, 500);        
           /*WaitOrTimerCallback wotc = new WaitOrTimerCallback(GetData);
           AutoResetEvent are = new AutoResetEvent(false);
           ThreadPool.RegisterWaitForSingleObject(are, new WaitOrTimerCallback(GetData), "C", 500, false);*/
       }
       protected void Timer_Callback(object state)
       {
           ThreadPool.QueueUserWorkItem(new WaitCallback(GetData), state);
       }
       int retVal;
       private void GetData(object type)
       {
           char priceType = (char)type;
           string sql = null;
           sql = "SELECT Price FROM tblPrices WHERE Type=""+priceType.ToString()+""";
           SqlConnection cn = new SqlConnection("Server=localhost; Database=Prices; Integrated Security=SSPI");
           cn.Open();
           SqlCommand cmd = new SqlCommand(sql, cn);
           
           lock(this)
           {
               retVal = (int)cmd.ExecuteScalar(); 
               switch(priceType) 
               {
                   case "C":
                       lastCoffeePrice = Convert.ToInt32(txtCoffeePrice.Text);
                       txtCoffeePrice.Text = retVal.ToString();
                       break;
                   case "T":
                       lastTeaPrice = Convert.ToInt32(txtTeaPrice.Text);
                       txtTeaPrice.Text = retVal.ToString();
                       break;
                   case "G":
                       lastGoldPrice = Convert.ToInt32(txtGoldPrice.Text);
                       txtGoldPrice.Text = retVal.ToString();
                       break;
               }
           }
           
           allUpdates++;
           cn.Close();
       }
       /// <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.txtCoffeePrice = new System.Windows.Forms.TextBox();
           this.txtTeaPrice = new System.Windows.Forms.TextBox();
           this.txtGoldPrice = new System.Windows.Forms.TextBox();
           this.lblCoffeePrice = new System.Windows.Forms.Label();
           this.lblTeaPrice = new System.Windows.Forms.Label();
           this.lblGoldPrice = new System.Windows.Forms.Label();
           this.SuspendLayout();
           // 
           // txtCoffeePrice
           // 
           this.txtCoffeePrice.Location = new System.Drawing.Point(72, 24);
           this.txtCoffeePrice.Name = "txtCoffeePrice";
           this.txtCoffeePrice.TabIndex = 0;
           this.txtCoffeePrice.Text = "0";
           // 
           // txtTeaPrice
           // 
           this.txtTeaPrice.Location = new System.Drawing.Point(192, 24);
           this.txtTeaPrice.Name = "txtTeaPrice";
           this.txtTeaPrice.TabIndex = 1;
           this.txtTeaPrice.Text = "0";
           // 
           // txtGoldPrice
           // 
           this.txtGoldPrice.Location = new System.Drawing.Point(312, 24);
           this.txtGoldPrice.Name = "txtGoldPrice";
           this.txtGoldPrice.TabIndex = 2;
           this.txtGoldPrice.Text = "0";
           // 
           // lblCoffeePrice
           // 
           this.lblCoffeePrice.Location = new System.Drawing.Point(72, 0);
           this.lblCoffeePrice.Name = "lblCoffeePrice";
           this.lblCoffeePrice.TabIndex = 3;
           this.lblCoffeePrice.Text = "Coffee Price";
           // 
           // lblTeaPrice
           // 
           this.lblTeaPrice.Location = new System.Drawing.Point(192, 0);
           this.lblTeaPrice.Name = "lblTeaPrice";
           this.lblTeaPrice.TabIndex = 4;
           this.lblTeaPrice.Text = "Tea Price";
           // 
           // lblGoldPrice
           // 
           this.lblGoldPrice.Location = new System.Drawing.Point(320, 0);
           this.lblGoldPrice.Name = "lblGoldPrice";
           this.lblGoldPrice.TabIndex = 5;
           this.lblGoldPrice.Text = "Gold Price";
           // 
           // DataChecker
           // 
           this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
           this.ClientSize = new System.Drawing.Size(424, 54);
           this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                         this.lblGoldPrice,
                                                                         this.lblTeaPrice,
                                                                         this.lblCoffeePrice,
                                                                         this.txtGoldPrice,
                                                                         this.txtTeaPrice,
                                                                         this.txtCoffeePrice});
           this.MaximizeBox = false;
           this.Name = "DataChecker";
           this.Text = "Data Checker";
           this.ResumeLayout(false);
       }
       #endregion
       /// <summary>
       /// The main entry point for the application.
       /// </summary>
       [STAThread]
       static void Main() 
       {
           Application.Run(new DataChecker());
       }
       
   }

}


      </source>


Get value from TextBox

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms; public class InterestCalculator : Form {

   Button buttonCalculate  = new Button();
   TextBox textBoxPrincipal = new TextBox();
   TextBox textBoxRate = new TextBox();
   TextBox textBoxInterest = new TextBox();
   Label labelPrincipal = new Label();
   Label labelRate = new Label();
   Label labelInterest = new Label();
   public InterestCalculator() {
       buttonCalculate.Location = new Point(50, 100);
       buttonCalculate.Text = "Calculate";
       buttonCalculate.Click += new System.EventHandler(this.buttonCalculate_Click);
       this.Controls.Add(buttonCalculate);
       textBoxPrincipal.Location = new Point(10, 20);
       textBoxPrincipal.Size = new Size(150, 10);
       textBoxPrincipal.Text = "100000.00";
       this.Controls.Add(textBoxPrincipal);
       textBoxRate.Location = new Point(10, 60);
       textBoxRate.Size = new Size(150, 10);
       textBoxRate.Text = "0.15";
       this.Controls.Add(textBoxRate);
       textBoxInterest.Location = new Point(10, 150);
       textBoxInterest.Size = new Size(150, 10);
       textBoxInterest.Text = "15000.00";
       this.Controls.Add(textBoxInterest);
       labelPrincipal.Location = new Point(10, 5);
       labelPrincipal.Size = new Size(144, 15);
       labelPrincipal.Text = "Principal";
       this.Controls.Add(labelPrincipal);
       labelRate.Location = new Point(10, 45);
       labelRate.Size = new Size(144, 15);
       labelRate.Text = "Rate";
       this.Controls.Add(labelRate);
       labelInterest.Location = new Point(10, 135);
       labelInterest.Size = new Size(144, 15);
       labelInterest.Text = "Interest";
       this.Controls.Add(labelInterest);
   }
   private void buttonCalculate_Click(object sender, System.EventArgs e) {
       double prin = Convert.ToDouble(textBoxPrincipal.Text);
       double rate = Convert.ToDouble(textBoxRate.Text);
       double amt = prin * rate;
       textBoxInterest.Text = amt.ToString("f2");
   }
   public static void Main(string[] args) {
       Application.Run(new InterestCalculator());
   }

}

</source>


Keyboard event and TextBox

<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.Text; public class Form1 : System.Windows.Forms.Form {

   private System.Windows.Forms.TextBox textBox1;
   private System.Windows.Forms.TextBox textBox2;
   private System.Windows.Forms.GroupBox groupBox1;
   private System.Windows.Forms.Label label1;
   private System.Windows.Forms.GroupBox groupBox2;
   private System.Windows.Forms.Label label2;
   public Form1() {
       this.textBox1 = new System.Windows.Forms.TextBox();
       this.textBox2 = new System.Windows.Forms.TextBox();
       this.groupBox1 = new System.Windows.Forms.GroupBox();
       this.label1 = new System.Windows.Forms.Label();
       this.groupBox2 = new System.Windows.Forms.GroupBox();
       this.label2 = new System.Windows.Forms.Label();
       this.groupBox1.SuspendLayout();
       this.groupBox2.SuspendLayout();
       this.SuspendLayout();
       // 
       // textBox1
       // 
       this.textBox1.Location = new System.Drawing.Point(16, 24);
       this.textBox1.Name = "textBox1";
       this.textBox1.Size = new System.Drawing.Size(168, 20);
       this.textBox1.TabIndex = 5;
       this.textBox1.Text = "";
       this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);
       // 
       // textBox2
       // 
       this.textBox2.Location = new System.Drawing.Point(16, 24);
       this.textBox2.Name = "textBox2";
       this.textBox2.Size = new System.Drawing.Size(168, 20);
       this.textBox2.TabIndex = 6;
       this.textBox2.Text = "";
       this.textBox2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox2_KeyDown);
       // 
       // groupBox1
       // 
       this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                               this.label1,
                                                                               this.textBox1});
       this.groupBox1.Location = new System.Drawing.Point(8, 8);
       this.groupBox1.Name = "groupBox1";
       this.groupBox1.TabIndex = 7;
       this.groupBox1.TabStop = false;
       this.groupBox1.Text = "Key Monitor";
       // 
       // label1
       // 
       this.label1.Location = new System.Drawing.Point(16, 64);
       this.label1.Name = "label1";
       this.label1.Size = new System.Drawing.Size(168, 20);
       this.label1.TabIndex = 6;
       // 
       // groupBox2
       // 
       this.groupBox2.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                               this.textBox2,
                                                                               this.label2});
       this.groupBox2.Location = new System.Drawing.Point(8, 120);
       this.groupBox2.Name = "groupBox2";
       this.groupBox2.TabIndex = 8;
       this.groupBox2.TabStop = false;
       this.groupBox2.Text = "Keys Enumeration";
       // 
       // label2
       // 
       this.label2.Location = new System.Drawing.Point(16, 64);
       this.label2.Name = "label2";
       this.label2.Size = new System.Drawing.Size(168, 20);
       this.label2.TabIndex = 9;
       // 
       // Form1
       // 
       this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
       this.ClientSize = new System.Drawing.Size(216, 229);
       this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                     this.groupBox2,
                                                                     this.groupBox1});
       this.groupBox1.ResumeLayout(false);
       this.groupBox2.ResumeLayout(false);
       this.ResumeLayout(false);
   }
   [STAThread]
   static void Main() {
       Application.Run(new Form1());
   }
   private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) {
       label1.Text = Convert.ToString(e.KeyValue);
   }
   private void textBox2_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) {
       if (e.Shift) Console.WriteLine("Shift, ");
       if (e.Alt) Console.WriteLine("Alt, ");
       if (e.Control) Console.WriteLine("Ctrl, ");
       if (e.KeyCode == Keys.W || e.KeyCode == Keys.R ) {
           Console.WriteLine("W R ");
       } else if (e.KeyCode == Keys.Escape && e.Modifiers == (Keys.Shift | Keys.Alt)) {
           Console.WriteLine("Escape");
       } else if (e.KeyCode == Keys.C && e.Modifiers == (Keys.Alt | Keys.Control)) {
           Console.WriteLine("s");
           textBox2.SelectedText = "";
           textBox2.SelectionLength = 0;
       } else {
           Console.WriteLine(Convert.ToString(e.KeyData));
       }
   }

}

</source>


Label, TextBox and Button

<source lang="csharp"> /* 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.ruponentModel; 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.ruponentModel.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);
       }
   }

}


      </source>


new TextBox(), Localtion, Name, TabIndex, Text

<source lang="csharp"> using System; using System.Windows.Forms; class MainForm : Form {

   private Label label1;
   private TextBox textBox1;
   private Button button1;
   public MainForm()
   {
        this.label1 = new Label();
        this.textBox1 = new TextBox();
        this.button1 = new Button();
        this.SuspendLayout();
        this.label1.Location = new System.Drawing.Point(16, 36);
        this.label1.Name = "label1";
        this.label1.Size = new System.Drawing.Size(128, 16);
        this.label1.TabIndex = 0;
        this.label1.Text = "Please enter your name:"; 
        this.textBox1.Location = new System.Drawing.Point(152, 32);
        this.textBox1.Name = "textBox1";
        this.textBox1.TabIndex = 1;
        this.textBox1.Text = "";
        this.button1.Location = new System.Drawing.Point(109, 80);
        this.button1.Name = "button1";
        this.button1.TabIndex = 2;
        this.button1.Text = "Enter";
        this.button1.Click += new System.EventHandler(this.button1_Click);
        this.ClientSize = new System.Drawing.Size(292, 126);
        this.Controls.Add(this.button1);
        this.Controls.Add(this.textBox1);
        this.Controls.Add(this.label1);
        this.ResumeLayout(false);
    }
    private void button1_Click(object sender, System.EventArgs e)
    {
       System.Console.WriteLine("User entered: " + textBox1.Text);
       MessageBox.Show("Welcome, " + textBox1.Text, "Visual C#");
    }
    [STAThread]
    public static void Main()
    {
       Application.EnableVisualStyles();
       Application.Run(new MainForm());
    }

}

</source>


Simple Editor based on TextBox

<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.IO; public class SimpleEditorForm : Form {

   private string filename = "Untitled";
   public SimpleEditorForm(string filename) {
       InitializeComponent();
       if (filename != null) {
           this.filename = filename;
           OpenFile();
       }
   }
   protected void OpenFile() {
       try {
           textBoxEdit.Clear();
           textBoxEdit.Text = File.ReadAllText(filename);
       } catch (IOException ex) {
           MessageBox.Show(ex.Message, "Simple Editor",
               MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
       }
   }
   private void OnFileNew(object sender, EventArgs e) {
       filename = "Untitled";
       textBoxEdit.Clear();
   }
   private void OnFileOpen(object sender, EventArgs e) {
       if (dlgOpenFile.ShowDialog() == DialogResult.OK) {
           filename = dlgOpenFile.FileName;
           OpenFile();
       }
   }
   private void OnFileSave(object sender, EventArgs e) {
   }
   private void OnFileSaveAs(object sender, EventArgs e) {
   }
   private void InitializeComponent() {
       this.textBoxEdit = new System.Windows.Forms.TextBox();
       this.mainMenu = new System.Windows.Forms.MenuStrip();
       this.miFile = new System.Windows.Forms.ToolStripMenuItem();
       this.miFileNew = new System.Windows.Forms.ToolStripMenuItem();
       this.miFileOpen = new System.Windows.Forms.ToolStripMenuItem();
       this.miFileSave = new System.Windows.Forms.ToolStripMenuItem();
       this.miFileSaveAs = new System.Windows.Forms.ToolStripMenuItem();
       this.dlgOpenFile = new System.Windows.Forms.OpenFileDialog();
       this.mainMenu.SuspendLayout();
       this.SuspendLayout();
       // 
       // textBoxEdit
       // 
       this.textBoxEdit.AcceptsReturn = true;
       this.textBoxEdit.AcceptsTab = true;
       this.textBoxEdit.Dock = System.Windows.Forms.DockStyle.Fill;
       this.textBoxEdit.Location = new System.Drawing.Point(0, 24);
       this.textBoxEdit.Multiline = true;
       this.textBoxEdit.Name = "textBoxEdit";
       this.textBoxEdit.ScrollBars = System.Windows.Forms.ScrollBars.Both;
       this.textBoxEdit.Size = new System.Drawing.Size(562, 219);
       this.textBoxEdit.TabIndex = 0;
       // 
       // mainMenu
       // 
       this.mainMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
           this.miFile});
       this.mainMenu.Location = new System.Drawing.Point(0, 0);
       this.mainMenu.Name = "mainMenu";
       this.mainMenu.Size = new System.Drawing.Size(562, 24);
       this.mainMenu.TabIndex = 1;
       this.mainMenu.Text = "menuStrip1";
       // 
       // miFile
       // 
       this.miFile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
           this.miFileNew,
           this.miFileOpen,
           this.miFileSave,
           this.miFileSaveAs});
       this.miFile.Name = "miFile";
       this.miFile.Text = "&File";
       // 
       // miFileNew
       // 
       this.miFileNew.Name = "miFileNew";
       this.miFileNew.Text = "&New";
       this.miFileNew.Click += new System.EventHandler(this.OnFileNew);
       // 
       // miFileOpen
       // 
       this.miFileOpen.Name = "miFileOpen";
       this.miFileOpen.Text = "&Open";
       this.miFileOpen.Click += new System.EventHandler(this.OnFileOpen);
       // 
       // miFileSave
       // 
       this.miFileSave.Name = "miFileSave";
       this.miFileSave.Text = "&Save";
       this.miFileSave.Click += new System.EventHandler(this.OnFileSave);
       // 
       // miFileSaveAs
       // 
       this.miFileSaveAs.Name = "miFileSaveAs";
       this.miFileSaveAs.Text = "Save &As";
       this.miFileSaveAs.Click += new System.EventHandler(this.OnFileSaveAs);
       // 
       // dlgOpenFile
       // 
       this.dlgOpenFile.Filter = "Text Documents (*.txt)|*.txt|Wrox Documents (*.wroxtext)|*.wroxtext|All Files|*.*" +
           "";
       this.dlgOpenFile.FilterIndex = 2;
       // 
       // SimpleEditorForm
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
       this.ClientSize = new System.Drawing.Size(562, 243);
       this.Controls.Add(this.textBoxEdit);
       this.Controls.Add(this.mainMenu);
       this.MainMenuStrip = this.mainMenu;
       this.Name = "SimpleEditorForm";
       this.Text = "Simple Editor";
       this.mainMenu.ResumeLayout(false);
       this.ResumeLayout(false);
       this.PerformLayout();
   }
   private System.Windows.Forms.TextBox textBoxEdit;
   private System.Windows.Forms.MenuStrip mainMenu;
   private System.Windows.Forms.ToolStripMenuItem miFile;
   private System.Windows.Forms.ToolStripMenuItem miFileNew;
   private System.Windows.Forms.ToolStripMenuItem miFileOpen;
   private System.Windows.Forms.ToolStripMenuItem miFileSave;
   private System.Windows.Forms.ToolStripMenuItem miFileSaveAs;
   private System.Windows.Forms.OpenFileDialog dlgOpenFile;
   [STAThread]
   static void Main(string[] args) {
       string filename = null;
       if (args.Length != 0)
           filename = args[0];
       Application.EnableVisualStyles();
       Application.Run(new SimpleEditorForm(filename));
   }

}

</source>


TextBox and button on form

<source lang="csharp"> /* 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.ruponentModel; 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.ruponentModel.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);
   }
 }

}


      </source>


TextBox and ListBox

<source lang="csharp"> 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());
  }

}

      </source>


TextBox Demo

<source lang="csharp"> /* 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.ruponentModel; 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.ruponentModel.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:\\temp\\RTFDOC.RTF");     
       }
   }

}


      </source>


TextBox location

<source lang="csharp"> using System; using System.Drawing; using System.ruponentModel; using System.Windows.Forms; public class frmLogin : System.Windows.Forms.Form {

   System.Windows.Forms.TextBox txtUser;
   System.Windows.Forms.Button btnOK;
   System.Windows.Forms.Button btnCancel;
   public frmLogin() {
       txtUser = new System.Windows.Forms.TextBox();
       txtUser.Location = new Point(30, 15);
       txtUser.Size = new Size(250, 20);
       txtUser.Text = "";
       txtUser.Name = "txtUser";
       this.Controls.Add(txtUser);
       btnOK = new System.Windows.Forms.Button();
       btnOK.Location = new Point(40,(txtUser.Location.Y + txtUser.Size.Height + btnOK.Size.Height));
       btnOK.Text = "OK";
       btnOK.Name = "btnOK";
       this.Controls.Add(btnOK);
       btnCancel = new System.Windows.Forms.Button();
       btnCancel.Location = new Point((this.Size.Width -
                                       btnCancel.Size.Width) - 40,
          (txtUser.Location.Y + txtUser.Size.Height + btnOK.Size.Height));
       btnCancel.Text = "Cancel";
       btnCancel.Name = "btnCancel";
       this.Controls.Add(btnCancel);
       this.Size = new Size(this.Size.Width, btnCancel.Location.Y +
                            btnCancel.Size.Height + 60);
       btnCancel.Click += new System.EventHandler(btnCancelHandler);
       btnOK.Click += new System.EventHandler(btnEventHandler);
   }
   private void btnEventHandler(object sender, System.EventArgs e) {
       MessageBox.Show(((Button)sender).Name);
   }
   private void btnCancelHandler(object sender, System.EventArgs e) {
       MessageBox.Show("The second handler");
   }
   [STAThread]
   static void Main() {
       Application.Run(new frmLogin());
   }

}

</source>


Text Changed event

<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 Form1 : Form {

   private System.Windows.Forms.GroupBox GroupBox1;
   private System.Windows.Forms.Label Label4;
   private System.Windows.Forms.Label Label1;
   private System.Windows.Forms.PictureBox pic;
   private System.Windows.Forms.TextBox txt;
   private System.Windows.Forms.Button cmd;
   private System.Windows.Forms.Label Label2;
   private System.Windows.Forms.Label Label3;
   private System.Windows.Forms.ListBox eventLogList;
   public Form1() {
       InitializeComponent();
   }
   private void Log(String data)
   {
       eventLogList.Items.Add(data);
       int itemsPerPage = (int)(eventLogList.Height / eventLogList.ItemHeight);
       eventLogList.TopIndex = eventLogList.Items.Count - itemsPerPage;
   }
   private void txt_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
   {
       Log("Key Down: " + e.KeyCode.ToString() + e.KeyValue.ToString());
   }
   private void txt_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
   {
       Log("Key Press: " + e.KeyChar.ToString());
   }
   private void txt_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
   {
       Log("Key Up: " + e.KeyCode.ToString() + e.KeyValue.ToString() + " Text is: " + txt.Text);
   }
   private void txt_TextChanged(object sender, System.EventArgs e)
   {
       Log("Changed: " + " Text is: " + txt.Text);
   }
   private void pic_MouseEnter(object sender, System.EventArgs e)
   {
       Log("Mouse Enter");
   }
   private void pic_MouseHover(object sender, System.EventArgs e)
   {
       Log("Mouse Hover");
   }
   private void pic_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
   {
       Log("Mouse Down: X=" + e.X.ToString() + " Y=" + e.Y.ToString() + " Button=" + e.Button.ToString());
   }
   private void pic_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
   {
       Log("Mouse Up: X=" + e.X.ToString() + " Y=" + e.Y.ToString() + " Button=" + e.Button.ToString());
   }
   private void pic_Click(object sender, System.EventArgs e)
   {
       Log("Click");
   }
   private void pic_DoubleClick(object sender, System.EventArgs e)
   {
       Log("Double Click");
   }
   private void pic_MouseLeave(object sender, System.EventArgs e)
   {
       Log("Mouse Leave");
   }
   private void InitializeComponent()
   {
       this.GroupBox1 = new System.Windows.Forms.GroupBox();
       this.Label4 = new System.Windows.Forms.Label();
       this.Label1 = new System.Windows.Forms.Label();
       this.pic = new System.Windows.Forms.PictureBox();
       this.txt = new System.Windows.Forms.TextBox();
       this.cmd = new System.Windows.Forms.Button();
       this.Label2 = new System.Windows.Forms.Label();
       this.Label3 = new System.Windows.Forms.Label();
       this.eventLogList = new System.Windows.Forms.ListBox();
       this.GroupBox1.SuspendLayout();
       ((System.ruponentModel.ISupportInitialize)(this.pic)).BeginInit();
       this.SuspendLayout();
       // 
       // GroupBox1
       // 
       this.GroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
       this.GroupBox1.Controls.Add(this.Label4);
       this.GroupBox1.Controls.Add(this.Label1);
       this.GroupBox1.Controls.Add(this.pic);
       this.GroupBox1.Controls.Add(this.txt);
       this.GroupBox1.Controls.Add(this.cmd);
       this.GroupBox1.Controls.Add(this.Label2);
       this.GroupBox1.FlatStyle = System.Windows.Forms.FlatStyle.System;
       this.GroupBox1.Location = new System.Drawing.Point(7, 0);
       this.GroupBox1.Name = "GroupBox1";
       this.GroupBox1.Size = new System.Drawing.Size(384, 148);
       this.GroupBox1.TabIndex = 12;
       this.GroupBox1.TabStop = false;
       // 
       // Label4
       // 
       this.Label4.Location = new System.Drawing.Point(92, 108);
       this.Label4.Name = "Label4";
       this.Label4.Size = new System.Drawing.Size(56, 16);
       this.Label4.TabIndex = 5;
       this.Label4.Text = "And here:";
       // 
       // Label1
       // 
       this.Label1.Location = new System.Drawing.Point(6, 24);
       this.Label1.Name = "Label1";
       this.Label1.Size = new System.Drawing.Size(144, 16);
       this.Label1.TabIndex = 2;
       this.Label1.Text = "Test keyboard events here:";
       // 
       // pic
       // 
       this.pic.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
       this.pic.Location = new System.Drawing.Point(156, 48);
       this.pic.Name = "pic";
       this.pic.Size = new System.Drawing.Size(192, 48);
       this.pic.TabIndex = 3;
       this.pic.TabStop = false;
       this.pic.DoubleClick += new System.EventHandler(this.pic_DoubleClick);
       this.pic.Click += new System.EventHandler(this.pic_Click);
       this.pic.MouseHover += new System.EventHandler(this.pic_MouseHover);
       this.pic.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pic_MouseUp);
       this.pic.MouseEnter += new System.EventHandler(this.pic_MouseEnter);
       this.pic.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pic_MouseDown);
       // 
       // txt
       // 
       this.txt.Location = new System.Drawing.Point(156, 20);
       this.txt.Name = "txt";
       this.txt.Size = new System.Drawing.Size(192, 21);
       this.txt.TabIndex = 1;
       this.txt.KeyUp += new System.Windows.Forms.KeyEventHandler(this.txt_KeyUp);
       this.txt.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txt_KeyPress);
       this.txt.TextChanged += new System.EventHandler(this.txt_TextChanged);
       this.txt.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txt_KeyDown);
       // 
       // cmd
       // 
       this.cmd.FlatStyle = System.Windows.Forms.FlatStyle.System;
       this.cmd.Location = new System.Drawing.Point(156, 100);
       this.cmd.Name = "cmd";
       this.cmd.Size = new System.Drawing.Size(88, 28);
       this.cmd.TabIndex = 4;
       this.cmd.Text = "Button1";
       this.cmd.MouseLeave += new System.EventHandler(this.pic_MouseLeave);
       this.cmd.Click += new System.EventHandler(this.pic_Click);
       this.cmd.MouseEnter += new System.EventHandler(this.pic_MouseEnter);
       this.cmd.MouseHover += new System.EventHandler(this.pic_MouseHover);
       this.cmd.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pic_MouseUp);
       this.cmd.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pic_MouseDown);
       // 
       // Label2
       // 
       this.Label2.Location = new System.Drawing.Point(20, 52);
       this.Label2.Name = "Label2";
       this.Label2.Size = new System.Drawing.Size(128, 16);
       this.Label2.TabIndex = 2;
       this.Label2.Text = "Test mouse events here:";
       // 
       // Label3
       // 
       this.Label3.Location = new System.Drawing.Point(23, 100);
       this.Label3.Name = "Label3";
       this.Label3.Size = new System.Drawing.Size(64, 24);
       this.Label3.TabIndex = 11;
       this.Label3.Text = "Label3";
       // 
       // eventLogList
       // 
       this.eventLogList.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.eventLogList.FormattingEnabled = true;
       this.eventLogList.IntegralHeight = false;
       this.eventLogList.Location = new System.Drawing.Point(7, 156);
       this.eventLogList.Name = "eventLogList";
       this.eventLogList.Size = new System.Drawing.Size(384, 212);
       this.eventLogList.TabIndex = 10;
       // 
       // Form1
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
       this.ClientSize = new System.Drawing.Size(399, 374);
       this.Controls.Add(this.GroupBox1);
       this.Controls.Add(this.Label3);
       this.Controls.Add(this.eventLogList);
       this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
       this.Name = "Form1";
       this.Text = "Event Tracker";
       this.GroupBox1.ResumeLayout(false);
       this.GroupBox1.PerformLayout();
       ((System.ruponentModel.ISupportInitialize)(this.pic)).EndInit();
       this.ResumeLayout(false);
   }
   [STAThread]
   static void Main()
   {
       Application.EnableVisualStyles();
       Application.Run(new Form1());
   }

}


      </source>


User Events

<source lang="csharp"> /* 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.ruponentModel; using System.Windows.Forms; using System.Data; using System.Diagnostics; using System.Runtime.rupilerServices; namespace UserEvents {

   /// <summary>
   /// Summary description for Form1.
   /// </summary>
   public class UserEvents : System.Windows.Forms.Form
   {
       private System.Windows.Forms.TextBox txtUsername;
       private System.Windows.Forms.Button btnLogin;
       /// <summary>
       /// Required designer variable.
       /// </summary>
       private System.ruponentModel.Container components = null;
       LoginAuditInserter la = new LoginAuditInserter();
       public UserEvents()
       {
           //
           // Required for Windows Form Designer support
           //
           InitializeComponent();
           //
           // TODO: Add any constructor code after InitializeComponent call
           //
           
           la.LoginAudit += new LoginAuditInserter.LoginAuditHandler(AddAuditEntry);
           la.LoginAudit += new LoginAuditInserter.LoginAuditHandler(AddEventLogEntry);
       }
       static public void AddAuditEntry(string username)
       {
           System.Diagnostics.Debug.WriteLine(username);
       }
       static public void AddEventLogEntry(string username)
       {
           string applicationName = "Login Audit";
           EventLog ev = new EventLog("Application");
           ev.Source = applicationName;
           ev.WriteEntry("Login Attempted.", EventLogEntryType.Information);
       }
       /// <summary>
       /// Clean up any resources being used.
       /// </summary>
       protected override void Dispose( bool disposing )
       {
           if( disposing )
           {
               if (components != null) 
               {
                   components.Dispose();
               }
           }
           la.LoginAudit -= new LoginAuditInserter.LoginAuditHandler(AddAuditEntry);
           la.LoginAudit -= new LoginAuditInserter.LoginAuditHandler(AddEventLogEntry);
           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.txtUsername = new System.Windows.Forms.TextBox();
           this.btnLogin = new System.Windows.Forms.Button();
           this.SuspendLayout();
           // 
           // txtUsername
           // 
           this.txtUsername.Location = new System.Drawing.Point(8, 24);
           this.txtUsername.Name = "txtUsername";
           this.txtUsername.Size = new System.Drawing.Size(152, 20);
           this.txtUsername.TabIndex = 0;
           this.txtUsername.Text = "";
           // 
           // btnLogin
           // 
           this.btnLogin.Location = new System.Drawing.Point(184, 24);
           this.btnLogin.Name = "btnLogin";
           this.btnLogin.Size = new System.Drawing.Size(96, 23);
           this.btnLogin.TabIndex = 1;
           this.btnLogin.Text = "Login";
           this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click);
           // 
           // UserEvents
           // 
           this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
           this.ClientSize = new System.Drawing.Size(292, 78);
           this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                         this.btnLogin,
                                                                         this.txtUsername});
           this.MaximizeBox = false;
           this.Name = "UserEvents";
           this.Text = "Login";
           this.ResumeLayout(false);
       }
       #endregion
       /// <summary>
       /// The main entry point for the application.
       /// </summary>
       [STAThread]
       static void Main() 
       {
           Application.Run(new UserEvents());
       }
       private void btnLogin_Click(object sender, System.EventArgs e)
       {
           la.AddAuditEntry(txtUsername.Text);     
       }
   }
   public class LoginAuditInserter
   {
       public delegate void LoginAuditHandler(string username);
       private AccessorContainer container = new AccessorContainer();
       private static int key = 0;
       public event LoginAuditHandler LoginAudit
       {
           [MethodImpl(MethodImplOptions.Synchronized)]
           add
           {
               container.Add(key, value);
           }
           [MethodImpl(MethodImplOptions.Synchronized)]
           remove
           {
               container.Remove(key, value);
           }
       }
       protected void OnLoginAudit(string username)
       {
           LoginAuditHandler loginAudit = (LoginAuditHandler)container.Get(key);
           if(username!=null)
           {
               loginAudit(username);
           }
       }
       public void AddAuditEntry(string username)
       {
           OnLoginAudit(username);
       }
   }
   public class AccessorContainer
   {
       private ArrayList arrayAccessor = new ArrayList();
       public Delegate Get(int key)
       {
           return ((Delegate)arrayAccessor[key]);
       }
       public void Add(int key, Delegate ptr)
       {
           try
           {
               arrayAccessor[key] = Delegate.rubine((Delegate)arrayAccessor[key], ptr);
           }
           catch(ArgumentOutOfRangeException)
           {
               arrayAccessor.Add(ptr);
           }
       }
       public void Remove(int key, Delegate ptr)
       {
           arrayAccessor.Remove(Delegate.Remove((Delegate)arrayAccessor[key], ptr));
       }
   }

}

      </source>