例如,让我输入一个时间,输入必须采用HH:MM格式,并且输入必须在用户输入中包含冒号,我将如何创建和存储它?
输入将来自WPF窗口上的文本框
答案 0 :(得分:1)
不是很精确的问题,但让我帮忙一点:
这是一个简单的示例,说明如何解析一个可能的字符串,并将其存储在DateTime变量中(如果以后要以其他格式显示,以此类推,这可能是干净的解决方案)。
string text = "21:05"; (instead you retrieve the content of your text box obviously)
string format = "HH:mm";
CultureInfo fr = new CultureInfo("fr-FR");
DateTime dt = DateTime.ParseExact(text, format, fr);
[编辑]基于德米特里的评论:
string text = "21:05";
string format = "HH:mm";
CultureInfo invariant = System.Globalization.CultureInfo.InvariantCulture;
DateTime dt;
if (DateTime.TryParseExact(text, format, invariant, DateTimeStyles.None, out dt))
{
// do your stuff
}
else
{
// handle the fact you cannot parse the datetime
}
请注意,根据您的情况,文化背景可能真的很重要。如果要避免用户输入错误,则应考虑在用户输入内容时对盒内容进行验证。这是一种迫使他遵守您期望的格式的方法。
例如,在这里查看:Implement Validation for WPF TextBoxes,但是您应该能够找到有关如何在SO上执行此操作的其他示例,或者只是在Google上搜索它。