-2

我想在验证失败后更改 TextBoxes 边框颜色,但我不想通过 Paint 事件来做到这一点。

我有一个类Validators和验证文本框的方法。

例如:

public bool ValidateDecimalTextBoxes(params TextBox[] textBoxes)
{
    //Validates decimal textboxes.
    //If the textbox is not a decimal value, its bordercolor should turn red.
}

我不知道该怎么做。请帮忙?

4

2 回答 2

0

尝试这个

呼唤

Validators Validate =new Validators();
Validate.ValidateDecimalTextBoxes(textBoxes,this);

在您的验证器类中

public bool ValidateDecimalTextBoxes(TextBox[] textBoxes,Form v)
 {
     Graphics g =v.CreateGraphics();
      foreach (TextBox txt in textBoxes)
       {
        if (!isdecimal(txt)){
         System.Drawing.Rectangle rect = new Rectangle(txt.Location.X, txt.Location.Y+2, 
         txt.ClientSize.Width+4, txt.ClientSize.Height);
          rect.Inflate(1, 3);
          System.Windows.Forms.ControlPaint.DrawBorder(g,rect, Color.Red, ButtonBorderStyle.Solid);
        }
       }
    return true;
  }

我想你有创建isdecimal函数

于 2013-05-26T20:44:35.400 回答
0

只需将其放在比文本框稍大的面板上,并设置文本框的背景颜色即可。

于 2013-05-26T18:20:50.703 回答