2013-05-26 6 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

이것은 winform입니까? –

+0

두 가지 유형이 있습니다 : XAML (WPF) 및 WinForms. 어느 것을 사용합니까? – Epsil0neR

답변

0

그냥 텍스트 상자보다 약간 큰 패널에 배치하고 텍스트 상자의 배경색을 설정하십시오.

+0

문제는 다음과 같이 사용되는이 메서드가 있다는 것입니다. 개인 bool IsValid() { return Validators.ValidateDecimalTextBoxes (PriceTextBox); } 그리고이 메서드가 false를 반환하면 지정된 텍스트 상자의 테두리가 빨간색으로 바뀌어야합니다. – Etrit

+0

winform 인 경우 오류 공급자를 사용하고 위에서 설명한대로 색을 변경하십시오. – coder

0

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에게 기능을 만들 수 있다고 가정

클래스 당신의 검사기에

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

를 호출하려고