我有一个TryParse.Date()
验证,用于验证通过文本框传递的日期,如果无效,则显示自定义消息框警告。
但是,在测试而不返回False
并显示消息框时,它仅显示了提及String passed is not a valid Date
的错误异常
这是我的代码片段
If Not Date.TryParse(txtDate.Text, "dd/MM/yyyy")
MsgBox("Please enter a valid Date", MsgBoxStyle.Critical)
Return
End If
因此,如果我传递一个字符串值01/01/99d
,它将显示异常消息,而不是返回并进入循环?
有什么建议吗?
答案 0 :(得分:2)
TryParse works并不是这样。第二个参数期望一个日期对象。我强烈建议您打开Option Strict。
您要寻找的是TryParseExact。它允许您设置自己的格式,但是仍然需要传递日期对象作为参数。页面上的漂亮示例,但我认为您可以将参数设置为Nothing。
Dim theDate As Date
If Not DateTime.TryParseExact(txtDate.Text, "dd/MM/yyyy", Nothing, Nothing, theDate) Then
...
注意:,即使您使用“ /”作为分隔符,也基于Rango注释。这可能会导致文化差异的人遇到问题。我强烈建议您正确设置文化,而不要使用Nothing。
答案 1 :(得分:1)