我正在使用Devexpress
当我希望用户具有以下两个日期时,我有一个TextEdit:
dd / MM / yyyy-dd / MM / yyyy(例如:02/12 / 2011-03 / 09/2013)
我已尝试如上所述设置遮罩,但无法正常工作。
答案 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控件。