2013-05-26 4 views
-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. 
} 

Я не знаю, как сделать это. Помоги пожалуйста?

+2

Является ли это winforms? –

+0

Это два типа: XAML (WPF) и WinForms. Что вы используете? – Epsil0neR

ответ

0

Просто поместите его на панель, которая немного больше, чем текстовое поле, и установите цвет фона в текстовом поле.

+0

См. Проблему в том, что этот метод у меня есть, используется следующим образом: частный bool IsValid() { {} return Validators.ValidateDecimalTextBoxes (PriceTextBox); } И если этот метод возвращает false, то граница этого текстового поля должна быть красной. – Etrit

+0

Если это winform, попробуйте использовать поставщика ошибок и внести изменение цвета, как указано выше. – coder

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 функцию

Смежные вопросы