Csharp/C Sharp/GUI Windows Form/TextBox
Содержание
- 1 Add ScrollBars to TextBox
- 2 All cap text textbox
- 3 A simple text editor
- 4 Convert TextBox input to double value
- 5 Data Checker
- 6 Get value from TextBox
- 7 Keyboard event and TextBox
- 8 Label, TextBox and Button
- 9 new TextBox(), Localtion, Name, TabIndex, Text
- 10 Simple Editor based on TextBox
- 11 TextBox and button on form
- 12 TextBox and ListBox
- 13 TextBox Demo
- 14 TextBox location
- 15 Text Changed event
- 16 User Events
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>