문제

양식에 객체의 속성 (실제로 여러 텍스트 상자)에 묶인 텍스트 상자가 있습니다. 이것은 객체의 편집기입니다. 텍스트 상자 중 하나에서 객체를 편집하고 값을 수정할 때 텍스트 상자에서 나갈 수 없습니다 (탭이나 다른 텍스트 상자를 클릭하지 않음). 그러나 항상 그런 것은 아닙니다. 같은 유형의 다른 객체를 편집 할 때 제대로 작동합니다.

코드 snipet은 다음과 같습니다.

txtValue.DataBindings.Add("Text", _SourceObject, "PlannedValue", True, DataSourceUpdateMode.OnPropertyChanged, Nothing, "c")
txtEstPlacements.DataBindings.Add("Text", _SourceObject, "EstimatedPlacementCount")
txtReference.DataBindings.Add("Text", _SourceObject, "Reference")

제안이 있습니까?

도움이 되었습니까?

해결책

데이터 검증 문제처럼 들립니다. 양식의 컨트롤에 원인이 발생하는 속성이 True 또는 False로 설정되어 있는지 확인하십시오.

또한 양식의 autovalidate 속성을 확인하십시오. 아마도 enablepreventFocusChange (기본값)로 설정되었을 것입니다.

텍스트 상자에 제공되는 값을 소스 데이터 개체에 바인딩되는 속성의 유형으로 변환 할 수없는 경우 일 수도 있습니다. 나는 Convert 클래스가 이것에 사용된다고 생각합니다 (여기서 잘못되었을 수도 있지만).

체크 아웃하고 싶을 수도 있습니다 이 기사 Winforms 유효성 검사를 다루는 MSDN에서.

다른 팁

양식에 autovalidate == enablepreventfocusChange가있는 경우, 유효성 검사에 실패한 필드에 포커스가 갇히게됩니다.

값을 객체에 쓸 때 예외가 있으면 검증이 실패한 것으로 간주됩니다.

커서가 붙어있는 컨트롤에 묶인 속성 세터의 입구에서 중단 점을 설정해보십시오. 그런 다음 예외가 제기되는지 확인하기위한 단일 단계.

중단 점이 시작되지 않으면 데이터베이닝 프레임 워크 내에서 예외가 발생할 수 있습니다.

대중적인 믿음과는 달리, Databinding Framework는 오류 및 기타 유용한 정보를 기록합니다. System.Diagnostics 네임 스페이스의 지원을 사용합니다. 세부 사항을 잊어 버렸지 만 MSDN에 있습니다. 응용 프로그램이 실행되는 동안 Visual Studio의 메시지 창에서 진단을 볼 수 있어야합니다. 데이터베이닝 문제 문제 해결에 매우 유용합니다.

유효성 검사 실패를 수정하기 위해 데이터베인딩이 설정할 수 없기 때문입니다. DBNull.Value textbox.text에 form_load 섹션에 다음 줄을 추가 할 수 있습니다.

TextBox1.DataBindings["Text"].NullValue = string.Empty;

각 텍스트 상자의 경우 빈 값을 올바르게 검증 할 수 있습니다.

Microsoft Connect에 대한 자세한 내용을 참조하십시오.

그리고 on :

빈 텍스트 상자를 피할 수 없습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top