Csharp/C Sharp/GUI Windows Form/Validation — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 11:33, 26 мая 2010
Error Provider to validate the text in a TextBox
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, "");
}
}
}
TextBox value validation Demo
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();
}
}