Csharp/C Sharp/GUI Windows Form/Validation
Error Provider to validate the text in a TextBox
<source lang="csharp">
using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class ErrorForm : System.Windows.Forms.Form { private System.Windows.Forms.Label label1; private System.Windows.Forms.Button btnValidate; private System.Windows.Forms.ErrorProvider errorProvider1; private System.Windows.Forms.TextBox txtInput; public ErrorForm() { InitializeComponent(); CenterToScreen(); } private void InitializeComponent() { this.errorProvider1 = new System.Windows.Forms.ErrorProvider(); this.label1 = new System.Windows.Forms.Label(); this.txtInput = new System.Windows.Forms.TextBox(); this.btnValidate = new System.Windows.Forms.Button(); this.SuspendLayout(); // // errorProvider1 // this.errorProvider1.BlinkRate = 500; this.errorProvider1.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.AlwaysBlink; // // label1 // this.label1.Location = new System.Drawing.Point(8, 8); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(376, 56); this.label1.TabIndex = 2; this.label1.Text = "The following text box only allows 5 characters."; // // txtInput // this.txtInput.Location = new System.Drawing.Point(144, 80); this.txtInput.Name = "txtInput"; this.txtInput.Size = new System.Drawing.Size(120, 20); this.txtInput.TabIndex = 0; this.txtInput.Text = ""; this.txtInput.Validating += new System.ruponentModel.CancelEventHandler(this.txtInput_Validating); // // btnValidate // this.btnValidate.Location = new System.Drawing.Point(16, 72); this.btnValidate.Name = "btnValidate"; this.btnValidate.Size = new System.Drawing.Size(112, 32); this.btnValidate.TabIndex = 1; this.btnValidate.Text = "OK"; // // ErrorForm // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(400, 125); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.label1, this.btnValidate, this.txtInput}); this.Name = "ErrorForm"; this.Text = "Error Trapper"; this.ResumeLayout(false); } static void Main() { Application.Run(new ErrorForm()); } private void txtInput_Validating(object sender, System.ruponentModel.CancelEventArgs e) { if(txtInput.Text.ToString().Length > 5) { errorProvider1.SetError( txtInput, "Can"t be greater than 5!"); } else{ errorProvider1.SetError(txtInput, ""); } } } </source>
TextBox value validation Demo
<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data;
public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Label lblName; private System.Windows.Forms.Label lblAddress; private System.Windows.Forms.Label lblOccupation; private System.Windows.Forms.Label lblAge; private System.Windows.Forms.Button btnOK; private System.Windows.Forms.Button btnHelp; private System.Windows.Forms.TextBox txtName; private System.Windows.Forms.TextBox txtAddress; private System.Windows.Forms.TextBox txtOccupation; private System.Windows.Forms.TextBox txtAge; public Form1() { InitializeComponent(); this.btnOK.Enabled = false; this.txtAddress.Tag = false; this.txtAge.Tag = false; this.txtName.Tag = false; this.txtOccupation.Tag = false; this.txtName.Validating += new System.ruponentModel.CancelEventHandler(this.txtBoxEmpty_Validating); this.txtAddress.Validating += new System.ruponentModel.CancelEventHandler(this.txtBoxEmpty_Validating); this.txtOccupation.Validating += new System.ruponentModel.CancelEventHandler(this.txtOccupation_Validating); this.txtAge.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtAge_KeyPress); this.txtAge.Validating += new System.ruponentModel.CancelEventHandler(this.txtBoxEmpty_Validating); this.txtName.TextChanged += new System.EventHandler(this.txtBox_TextChanged); this.txtAddress.TextChanged += new System.EventHandler(this.txtBox_TextChanged); this.txtAge.TextChanged += new System.EventHandler(this.txtBox_TextChanged); this.txtOccupation.TextChanged += new System.EventHandler(this.txtBox_TextChanged); } private void InitializeComponent() { this.lblName = new System.Windows.Forms.Label(); this.txtName = new System.Windows.Forms.TextBox(); this.lblAge = new System.Windows.Forms.Label(); this.btnOK = new System.Windows.Forms.Button(); this.txtAge = new System.Windows.Forms.TextBox(); this.txtAddress = new System.Windows.Forms.TextBox(); this.lblAddress = new System.Windows.Forms.Label(); this.lblOccupation = new System.Windows.Forms.Label(); this.txtOccupation = new System.Windows.Forms.TextBox(); this.btnHelp = new System.Windows.Forms.Button(); this.SuspendLayout(); // // lblName // this.lblName.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left); this.lblName.Location = new System.Drawing.Point(8, 16); this.lblName.Name = "lblName"; this.lblName.Size = new System.Drawing.Size(92, 23); this.lblName.TabIndex = 0; this.lblName.Text = "Name"; // // txtName // this.txtName.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.txtName.Location = new System.Drawing.Point(112, 16); this.txtName.Name = "txtName"; this.txtName.Size = new System.Drawing.Size(176, 20); this.txtName.TabIndex = 5; this.txtName.Text = ""; // // lblAge // this.lblAge.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left); this.lblAge.Location = new System.Drawing.Point(8, 144); this.lblAge.Name = "lblAge"; this.lblAge.Size = new System.Drawing.Size(92, 23); this.lblAge.TabIndex = 3; this.lblAge.Text = "Age"; // // btnOK // this.btnOK.Anchor = (System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right); this.btnOK.Location = new System.Drawing.Point(296, 16); this.btnOK.Name = "btnOK"; this.btnOK.TabIndex = 10; this.btnOK.Text = "OK"; this.btnOK.Click += new System.EventHandler(this.btnOK_Click); // // txtAge // this.txtAge.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.txtAge.Location = new System.Drawing.Point(112, 136); this.txtAge.Name = "txtAge"; this.txtAge.Size = new System.Drawing.Size(176, 20); this.txtAge.TabIndex = 8; this.txtAge.Text = ""; // // txtAddress // this.txtAddress.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.txtAddress.Location = new System.Drawing.Point(112, 40); this.txtAddress.Multiline = true; this.txtAddress.Name = "txtAddress"; this.txtAddress.ScrollBars = System.Windows.Forms.ScrollBars.Both; this.txtAddress.Size = new System.Drawing.Size(176, 72); this.txtAddress.TabIndex = 6; this.txtAddress.Text = ""; // // lblAddress // this.lblAddress.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left); this.lblAddress.Location = new System.Drawing.Point(8, 40); this.lblAddress.Name = "lblAddress"; this.lblAddress.Size = new System.Drawing.Size(92, 23); this.lblAddress.TabIndex = 1; this.lblAddress.Text = "Address"; // // lblOccupation // this.lblOccupation.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left); this.lblOccupation.Location = new System.Drawing.Point(8, 120); this.lblOccupation.Name = "lblOccupation"; this.lblOccupation.Size = new System.Drawing.Size(92, 23); this.lblOccupation.TabIndex = 2; this.lblOccupation.Text = "Occupation"; // // txtOccupation // this.txtOccupation.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.txtOccupation.Location = new System.Drawing.Point(112, 112); this.txtOccupation.Name = "txtOccupation"; this.txtOccupation.Size = new System.Drawing.Size(176, 20); this.txtOccupation.TabIndex = 7; this.txtOccupation.Text = ""; // // btnHelp // this.btnHelp.Anchor = (System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right); this.btnHelp.CausesValidation = false; this.btnHelp.Location = new System.Drawing.Point(296, 48); this.btnHelp.Name = "btnHelp"; this.btnHelp.TabIndex = 11; this.btnHelp.Text = "Help"; this.btnHelp.Click += new System.EventHandler(this.btnHelp_Click); // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(376, 253); this.Controls.AddRange(new System.Windows.Forms.Control[] {this.btnHelp, this.btnOK, this.txtAge, this.txtOccupation, this.txtAddress, this.txtName, this.lblAge, this.lblOccupation, this.lblAddress, this.lblName}); this.MinimumSize = new System.Drawing.Size(384, 280); this.Name = "Form1"; this.Text = "TestBoxTest"; this.ResumeLayout(false); } static void Main() { Application.Run(new Form1()); } private void btnOK_Click(object sender, System.EventArgs e) { string output; output = "Name: " + this.txtName.Text + "\r\n"; output += "Address: " + this.txtAddress.Text + "\r\n"; output += "Occupation: " + this.txtOccupation.Text + "\r\n"; output += "Age: " + this.txtAge.Text; Console.WriteLine(output); } private void btnHelp_Click(object sender, System.EventArgs e) { string output; output = "Name = Your name" + "\r\n"; output += "Address = Your address" + "\r\n"; output += "Occupation = Only allowed value is "Employee" or empty" + "\r\n"; output += "Age = Your age"; Console.WriteLine(output); } private void txtBoxEmpty_Validating(object sender, System.ruponentModel.CancelEventArgs e) { TextBox tb; tb = (TextBox)sender; if (tb.Text.Length == 0) { tb.BackColor = Color.Red; tb.Tag = false; } else { tb.BackColor = System.Drawing.SystemColors.Window; tb.Tag = true; } ValidateAll(); } private void ValidateAll() { this.btnOK.Enabled = ((bool)(this.txtAddress.Tag) && (bool)(this.txtAge.Tag) && (bool)(this.txtName.Tag) && (bool)(this.txtOccupation.Tag)); } private void txtOccupation_Validating(object sender, System.ruponentModel.CancelEventArgs e) { TextBox tb = (TextBox)sender; if (tb.Text.rupareTo("Employee") == 0 || tb.Text.Length == 0) { tb.Tag = true; tb.BackColor = System.Drawing.SystemColors.Window; } else { tb.Tag = false; tb.BackColor = Color.Red; } ValidateAll(); } private void txtAge_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8) e.Handled = true; // Remove the character } private void txtBox_TextChanged(object sender, System.EventArgs e) { TextBox tb = (TextBox)sender; if (tb.Text.Length == 0 && tb != txtOccupation) { tb.Tag = false; tb.BackColor = Color.Red; } else if (tb == txtOccupation && (tb.Text.Length != 0 && tb.Text.rupareTo("Employee") != 0)) { tb.Tag = false; } else { tb.Tag = true; tb.BackColor = SystemColors.Window; } ValidateAll(); } }
</source>