Validating Event 활용시 Focus 처리 어떻게 하시나요?

안녕하세요.

아래 이미지 처럼,
textbox에서 validating event를 걸어서 데이터 검증을 하려고 합니다.

한가지 발생한 문제는…
입력값이 적합하지 않은 경우 아래 처럼 e.Cancel을 통해 검증 처리는 잘 되지만,
포커스가 해당 textbox에서 벗어나오질 못합니다.

       if (string.IsNullOrEmpty(txtBox.Text))
       {
           e.Cancel = true;
           txtBox.IconRight = Tas2D_V3.Properties.Resources.icon_error;
           txtBox.FocusedState.BorderColor = Color.FromArgb(249, 103, 103);
           txtBox.FillColor = Color.FromArgb(255, 226, 226);
           validationMessage.Message = "User is Empty";
       }

Q1 ) 해당 textBox에 포커싱이 된 상태에서 “우측 상단에 닫기” 버튼을 통해 강제로 창을 닫으려면 어떻게 하면 좋을 까요?

그리고…
Q2) 입력폼에서 입력항목 검증은 어떻게 처리를 하실까요?

좋아요 1

Q1) TextBox의 컨테이너 컨트롤 (Form 등)의 AutoValidate 속성을 EnableAllowFocusChange로 하면 됩니다.

Q2) 정규식을 이용할 수 있습니다.

유효성 검사 시점을 물어보시는 거라면

또는 저장, 또는 로그인 버튼 클릭시 일괄 유효성 검사를 하려면

AutoValidateDisable로 설정한 후,

  • control.Validate() 하거나
  • 컨테이너 컨트롤에서 ValidateChildren()로 일괄 할 수 있습니다.
좋아요 2