2011-11-09 2 views
0

저장 및 취소 버튼이있는 대화 상자의 텍스트 편집기에 다음을 수행하고 있습니다.DevExpress maskedit 오류가 표시되면 대화 상자를 닫을 수 없습니다.

_underlyingEditor.Properties.Mask.EditMask = @"\((\d{3})\)-(\d{3})-(\d{4})"; 
_underlyingEditor.Properties.Mask.MaskType = MaskType.RegEx; 
_underlyingEditor.Properties.Mask.UseMaskAsDisplayFormat = true; 
_underlyingEditor.Properties.AutoHeight = false; 

문제는 사용자 유형 편집기에 잘못된 값이 다음 클릭이 유효성 검사 오류 쇼를 취소하면 화면이 닫히지 않습니다 것입니다. 나는 취소 버튼 클릭 이벤트를 편집기에서 값을 지우려고 시도했지만 실행하지는 않습니다.

아무도이 문제를 해결할 방법을 찾지 못했습니까?

답변

0

유효성 검사에 실패하면 대화 상자를 닫을 수 없습니다.이 동작은 표준 동작이며 DevExpress 컨트롤과 관련이 없습니다. 그러나 이러한 오류를 표시하려면 DXErrorProvider을 사용하여 회피 할 수 있습니다. 이렇게하면 틀린 데이터에도 불구하고 양식을 닫을 수 있습니다. 아래 그림과 같이 편집기의 유효성 검사 이벤트를 처리하십시오 :

void textEdit1_Validating(object sender, System.ComponentModel.CancelEventArgs e) { 
    if(e.Cancel) { 
     dxErrorProvider1.SetError(textEdit1, "Error"); 
     e.Cancel = false; 
    } 
    else dxErrorProvider1.SetError(textEdit1, null); 
} 

주를, 당신이 그것을 nesessary 경우 양식 폐쇄를 방지하기 위해 FormClosing 이벤트 내에서 DXErrorProvider.HasErrors 속성을 사용할 수있다.

0

FormClosing 이벤트를 처리하고 e.Cancel 매개 변수를 False로 설정하십시오. 도움이 될 것입니다. e.CloseReason 매개 변수는 닫는 이유에 대한 정보를 제공합니다. 필요한 경우이를 확인하십시오.

관련 문제