用于TextEdit的Devexpress蒙版

时间:2019-08-11 17:06:35

标签: devexpress

我正在使用Devexpress

当我希望用户具有以下两个日期时,我有一个TextEdit:

dd / MM / yyyy-dd / MM / yyyy(例如:02/12 / 2011-03 / 09/2013)

我已尝试如上所述设置遮罩,但无法正常工作。

1 个答案:

答案 0 :(得分:1)

可以设置遮罩:

textEdit.Properties.Mask.MaskType = MaskType.Simple;
textEdit.Properties.Mask.EditMask = "00/00/0000-00/00/0000";

但是,TextEdit只能具有一个EditValue属性,因此它不允许您存储两个DateTime值。

您可以添加带有Validating事件的自定义验证:

private void TextEdit_Validating(object sender, CancelEventArgs e)
{
    string textValue = (string)(sender as TextEdit).EditValue;
    var dates = textValue?.Split('-').Select(x => { DateTime.TryParse(x, out DateTime result); return result; });
    if (dates == null || dates.Any(x => x == null))
    {
        e.Cancel = true;
    }
}

但是它看起来很混乱,所以我建议您改用两个DateEdit控件。