我依照C# 高级编程上的描述做了个小Demo,上面除了2个Textbox外,还有2个按钮。分别是OK和Cancel。代码如下:
private void textBox1_Validating(object sender, CancelEventArgs e)
        {
            if (textBox1.Text.Length != 0 && int.Parse(textBox1.Text) < 0)
            {
                errorProvider1.SetIconAlignment((Control)sender, ErrorIconAlignment.MiddleRight);
                errorProvider1.SetError((Control)sender, "Value must be greater than 0.");
                e.Cancel = true;
            }
            else
            {
                errorProvider1.SetError((Control)sender, "");
            }
        }        private void textBox2_Validating(object sender, CancelEventArgs e)
        {
            if (textBox2.TextLength > 0 && textBox2.TextLength != 5)
            {
                errorProvider1.SetIconAlignment((Control)sender, ErrorIconAlignment.MiddleRight);
                errorProvider1.SetError((Control)sender, "Must be 5 charactors");
                e.Cancel = true;
            }
            else
            {
                errorProvider1.SetError((Control)sender, "");
            }
        }        private void OKbutton_Click(object sender, EventArgs e)
        {
            foreach (Control control in this.Controls)
            {
                control.Focus();
                if (!Validate())
                {
                    return;
                }
            }
        }        private void Cancelbutton_Click(object sender, EventArgs e)
        {
            Close();
        }其中,
TextBox1.CausesValidation = true; TextBox2.CauseValidation = false; OKButton.CausesValidation = true; CancelButton.CausesValidation = false;