2011-11-09 15 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を使用して回避することで、これらのエラーを表示できます。これにより、不正なデータにもかかわらずフォームが閉じられます。以下に示すように、エディタのValidatingイベントを処理してください:

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パラメータは、閉じる理由についての情報を提供します。あなたはそれが必要であればそれをチェックする。

関連する問題