【发布时间】:2019-08-11 17:06:35
【问题描述】:
我正在使用 Devexpress
当我希望用户有 2 个日期时,我有一个 TextEdit,如下所示:
dd/MM/yyyy - dd/MM/yyyy(例如:02/12/2011-03/09/2013)
我已尝试按上述方式设置掩码,但无法正常工作。
【问题讨论】:
标签: devexpress
我正在使用 Devexpress
当我希望用户有 2 个日期时,我有一个 TextEdit,如下所示:
dd/MM/yyyy - dd/MM/yyyy(例如:02/12/2011-03/09/2013)
我已尝试按上述方式设置掩码,但无法正常工作。
【问题讨论】:
标签: devexpress
可以设置掩码:
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 控件。
【讨论】: