问题的产生是在我要判断一个日期控件DateTimePicker是否有输入值(也就是是否为空)的问题,然后我写了下面的代码:Dim Day As Date = e.Form.Controls("sxrq").value
If TAB Is Nothing OrElse day Is Nothing Then
MSGBOX("请先选择供应商和生效日期")
Return
Else
然后就报错了。然后找教程,发现下面的提示:
-----------------------------------------------------------------------------------------------------------------
需要注意的是,数值、日期、逻辑三种类型的变量,是永远不会为空的,其它任何类型的变量,如果没有明确赋值,其初始值都是Nothing。
数值型的初始值为0,逻辑型变量的初始值为False,日期型的初始值为#1/1/1
0:00:00#,如果你将Nothing赋给这些变量,也只是使得这些变量回到初始值而已。
-----------------------------------------------------------------------------------------------------------------
但是问题是,教程并没有说明要怎么判断DateTimePicker是否为空,然后我不断的尝试各种方法来判断,始终不能得到正确的答案。直到在VB.NET论坛搜索到一篇文章:
https://cloud.tencent.com/developer/ask/113482
才明白过来,原来这个问题还真不简单。正确的代码如下
Dim Day As Date? = e.Form.Controls("sxrq").value
If TAB Is Nothing OrElse day Is Nothing Then
MSGBOX("请先选择供应商和生效日期")
Return
Else
简直是晕死我了!答案就是一个?。这个问题折腾了我三天了!终于被我搞定了!考虑到教程没有说到这个问题,所以斗胆发上来和初学者共享,同时纪念我在VB。net编程掉进的坑。