2010-04-26 4 views
0

세 개의 탭이 포함 된 탭 컨트롤이있는 UserControl이 있습니다. 탭 내에는 Datetimepickers, textboxes, comboboxes와 같은 여러 컨트롤이 있습니다.C# UserControl 유효성 검사

또한 저장 버튼이 있는데 여기를 클릭하면 this.ValidateChildren(ValidationConstraints.Enabled)가 호출됩니다. 저장을 클릭하면 geniune 유효성 검사 오류가 발생합니다. 오류를 수정 한 다음 다시 저장 - 다른 탭의 콤보 상자에서 발価 오류가 발생합니다. 이 탭으로 이동하여 저장을 클릭하면 모든 것이 올바르게 작동합니다. 어떻게 이럴 수있어? 콤보 박스의 값을 변경하지 않았으므로 어떻게 실패 검증이 유효성 검사를 통과 할 수 있습니까?

콤보 박스는 selectedValue 및 Text 세트를 사용하여 데이터 세트에 바인딩됩니다. 나는 여기서 무슨 일이 일어나고 있는지 이해하지 못한다.

이 문제는 일부 텍스트 상자에도 발생합니다. 유효성 검사 규칙은 10 진수 여야한다는 것입니다. 기본값은 0이며 허용됩니다. 똑같은 일이 발생합니다. 처음에는 유효성 검사에 실패합니다. 변경하지 않고 저장을 다시 클릭하면 유효성 검사가 통과됩니다.

편집 :

오류는 프레임 워크 오류가 아닙니다 - 오류가 내 검증 루틴 동안 제공하는 것입니다. 예 : 유효한 드롭 다운 옵션을 선택하십시오.

나는 프로세스를 밟았으며 때로는 콤보 박스 값이 기본값 인 반면에 selectedvalue는 기본값이지만 텍스트는 null입니다. 콤보 박스에서 아무 것도 바꾸지 않으면 어떻게 될지 모르겠습니다. 어떤 추가 정보가 필요하면

기본 값이 null이 아님을 확인 했 나

감사

베리

+0

무엇이 오류입니까? – Ando

답변

3

MSDN에서 인용 한 것입니다 :

"탭 페이지가 표시 될 때까지 TabPage에 포함 된 컨트롤이 생성되지 않으며, 탭 페이지가 표시 될 때까지 이러한 컨트롤의 데이터 바인딩이 활성화되지 않습니다."

첫 번째로 저장하기 전에 적어도 한 번 이상 각 탭을 클릭했는지 확인하면 예상대로 작동하지만 모든 것을 보지 않으면 탭을 저장하기 전에 실패합니까?

+0

감사합니다 호 - 그게 내가 놓친 것입니다. UserControl의 Load 이벤트에서 각 탭을 반복하는 코드를 추가했는데 유효성 검사가 예상대로 작동합니다. 나는 너무 혼란스러워서 Validation에 집중했다. 도움 주셔서 감사합니다. – codingbadger

0

을 알려주세요? 다음

+0

기본값은 Null이 아닙니다. 기본값은 데이터 집합의 유효한 옵션으로 설정됩니다. 예 : SelectedValue는 1 - 텍스트는 "내 드롭 다운 옵션 텍스트" – codingbadger

+0

그런 다음 오류 메시지를 게시 할 수 있습니까? – thelost