Csharp/C Sharp/GUI Windows Form/Validation — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (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();
    }
  }