Csharp/C Sharp by API/System.Windows.Forms/ErrorProvider

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

ErrorProvider.GetError

  

using System;
using System.Windows.Forms;
using System.Text.RegularExpressions;
public class TextBoxValidationRegex : Form
{
    public TextBoxValidationRegex()
    {
        this.ruponents = new System.ruponentModel.Container();
        this.Button1 = new System.Windows.Forms.Button();
        this.errProvider = new System.Windows.Forms.ErrorProvider(this.ruponents);
        this.Label3 = new System.Windows.Forms.Label();
        this.txtEmail = new System.Windows.Forms.TextBox();
        ((System.ruponentModel.ISupportInitialize)(this.errProvider)).BeginInit();
        this.SuspendLayout();
        this.Button1.Location = new System.Drawing.Point(212, 80);
        this.Button1.Name = "Button1";
        this.Button1.Size = new System.Drawing.Size(76, 24);
        this.Button1.TabIndex = 12;
        this.Button1.Text = "OK";
        this.Button1.Click += new System.EventHandler(this.Button1_Click);
        this.errProvider.ContainerControl = this;
        this.errProvider.DataMember = "";
        this.Label3.Location = new System.Drawing.Point(24, 24);
        this.Label3.Size = new System.Drawing.Size(40, 16);
        this.Label3.Text = "Email:";
        this.txtEmail.Location = new System.Drawing.Point(68, 20);
        this.txtEmail.Size = new System.Drawing.Size(220, 21);
        this.txtEmail.Leave += new System.EventHandler(this.txtEmail_Leave);
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(328, 126);
        this.Controls.Add(this.Label3);
        this.Controls.Add(this.txtEmail);
        this.Controls.Add(this.Button1);
        this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
        ((System.ruponentModel.ISupportInitialize)(this.errProvider)).EndInit();
        this.ResumeLayout(false);
        this.PerformLayout();
    }
    private void Button1_Click(object sender, EventArgs e)
    {
        string errorText = "";
        foreach (Control ctrl in this.Controls)
        {
            if (errProvider.GetError(ctrl) != "")
            {
                errorText += "   * " + errProvider.GetError(ctrl) + "\n";
                
            }
            MessageBox.Show("Errors:" +errorText, "Invalid Input", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }
    }
    private void txtEmail_Leave(object sender, EventArgs e)
    {
        Regex regex;
        regex = new Regex(@"^[\w-]+@([\w-]+\.)+[\w-]+$");
        Control ctrl = (Control)sender;
        if (regex.IsMatch(ctrl.Text) || ctrl.Text == "")
        {
            errProvider.SetError(ctrl, "");
        }
        else
        {
            errProvider.SetError(ctrl, "This is not a valid email address.");
        }
    }
    [STAThread]
    public static void Main(string[] args)
    {
        Application.Run(new TextBoxValidationRegex());
    }
    private System.Windows.Forms.Button Button1;
    private System.Windows.Forms.ErrorProvider errProvider;
    private System.Windows.Forms.Label Label3;
    private System.Windows.Forms.TextBox txtEmail;
    private System.ruponentModel.IContainer components = null;
}


ErrorProvider.SetError

  
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.ruponentModel.Container components = null;
  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();
  }
  protected override void Dispose( bool disposing )
  {
    if( disposing )
    {
      if (components != null) 
      {
        components.Dispose();
      }
    }
    base.Dispose( disposing );
  }
  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;
    this.errorProvider1.ContainerControl = this;
    // 
    // label1
    // 
    this.label1.Font = new System.Drawing.Font("Arial Black", 12F);
    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.  Try to enter more...";
    // 
    // 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.Add(this.label1);
    this.Controls.Add(this.btnValidate);
    this.Controls.Add(this.txtInput);
    this.Name = "ErrorForm";
    this.Text = "Error Trapper";
    this.ResumeLayout(false);
  }
  [STAThread]
  static void Main() 
  {
    Application.Run(new ErrorForm());
  }
  private void txtInput_Validating(object sender, System.ruponentModel.CancelEventArgs e)
  {
    // Check if the text length is greater than 5.
    if(txtInput.Text.Length > 5)
    {
      errorProvider1.SetError( txtInput, "Can"t be greater than 5!");
    } 
    else
      errorProvider1.SetError(txtInput, "");
  }
}