Csharp/C Sharp by API/System.Windows.Forms/ErrorProvider — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 18:31, 26 мая 2010
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>