DateTimePicker未修改时TextBox显示指定文本的VB代码修正求助
问题修正方案
问题原因
你的三个代码选项均无法实现需求,核心问题如下:
DateTimePicker.Value默认包含完整的日期+时间(比如当前时刻为14:30时,控件值是今日 14:30:00)Date.Today/Today返回的是当日00:00:00的日期值,直接对比两者永远不相等,导致条件分支始终走Else- 选项3使用
TimeOfDay完全错误,TimeOfDay仅返回当前时间的时分秒,和日期无关联
修正后的代码方案
提取控件值的日期部分与Date.Today对比,同时用VB中更安全的&拼接字符串:
Dim availability As New List(Of String) If dtpavailability.Value.Date = Date.Today Then availability.Add("Can start to work anytime") Else availability.Add("Can start to work by " & dtpavailability.Value.Date.ToString("yyyy-MM-dd")) ' 可指定日期格式优化显示 End If TextBox1.Text = String.Join(vbNewLine, availability)
简化版(无需List)
若仅需显示单行文本,无需使用List,直接赋值更简洁:
If dtpavailability.Value.Date = Date.Today Then TextBox1.Text = "Can start to work anytime" Else TextBox1.Text = "Can start to work by " & dtpavailability.Value.Date.ToString("yyyy-MM-dd") End If
内容的提问来源于stack exchange,提问作者Newbie TJ
相关产品推荐
相关产品推荐

