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
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;
}
}
All cap text textbox
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());
}
}
A simple text editor
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());
}
}
Convert TextBox input to double value
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());
}
}
Data Checker
/*
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());
}
}
}
Get value from TextBox
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());
}
}
Keyboard event and TextBox
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));
}
}
}
Label, TextBox and Button
/*
User Interfaces in C#: Windows Forms and Custom Controls
by Matthew MacDonald
Publisher: Apress
ISBN: 1590590457
*/
using System;
using System.Drawing;
using System.Collections;
using System.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);
}
}
}
new TextBox(), Localtion, Name, TabIndex, Text
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());
}
}
Simple Editor based on TextBox
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));
}
}
TextBox and button on form
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
using System;
using System.Drawing;
using System.Collections;
using System.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);
}
}
}
TextBox and ListBox
using System;
using System.Drawing;
using System.Windows.Forms;
public class WindowSample : Form
{
private TextBox data;
private ListBox results;
public WindowSample()
{
Text = "Sample Window Program";
Size = new Size(400, 380);
Label label1 = new Label();
label1.Parent = this;
label1.Text = "Enter text string:";
label1.AutoSize = true;
label1.Location = new Point(10, 10);
data = new TextBox();
data.Parent = this;
data.Size = new Size(200, 2 * Font.Height);
data.Location = new Point(10, 35);
results = new ListBox();
results.Parent = this;
results.Location = new Point(10, 65);
results.Size = new Size(350, 20 * Font.Height);
Button checkit = new Button();
checkit.Parent = this;
checkit.Text = "test";
checkit.Location = new Point(235,32);
checkit.Size = new Size(7 * Font.Height, 2 * Font.Height);
checkit.Click += new EventHandler(ButtonOnClick);
}
void ButtonOnClick(object obj, EventArgs ea)
{
results.Items.Add(data.Text);
data.Clear();
}
public static void Main()
{
Application.Run(new WindowSample());
}
}
TextBox Demo
/*
Professional Windows GUI Programming Using C#
by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury,
Zach Greenvoss, Shripad Kulkarni, Neil Whitlow
Publisher: Peer Information
ISBN: 1861007663
*/
using System;
using System.Drawing;
using System.Collections;
using System.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");
}
}
}
TextBox location
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());
}
}
Text Changed event
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());
}
}
User Events
/*
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));
}
}
}