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

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

ErrorProvider.GetError

<source lang="csharp">

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;

}


 </source>


ErrorProvider.SetError

<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.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, "");
 }

}


 </source>