-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);

Validatorsクラスで

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 に答える