VB6.0中,DTPicker日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)

VB6.0中,日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值,或许是一个不错的选择。

 

实现效果如下图:

 

文本框txtStopTime1
时间框DTStopTime1(DTPicker控件) 右键-属性-选择格式3 - dtpCustom  HH:mm:ss
若没有DTPicker控件,在部件中添加 工具-部件-控件-“Microsoft Windows Common Controls-2.6.0”-应用-确定

 

代码如下:

Private Sub Form_Load()
      txtStopTime1.ZOrder
      DTStopTime1.Top = txtStopTime1.Top
      DTStopTime1.Left = txtStopTime1.Left
end Sub
'时间控件
'键盘输入值
Private Sub DTStopTime1_KeyPress(KeyAscii As Integer)
      If KeyAscii = 8 Then
            txtStopTime1.text = ""
            txtStopTime1.ZOrder
      End If
End Sub
'失去焦点
Private Sub DTStopTime1_LostFocus()
      DTStopTime1.Value = format("00:00:00", "HH:mm:ss")
      txtStopTime1.ZOrder '决定谁在上面
End Sub
'值改变
Private Sub DTStopTime1_Change()
      txtStopTime1.text = format(DTStopTime1.Value, "HH:mm:ss")
End Sub

'文本框
'得到焦点
Private Sub txtStopTime1_GotFocus()
      If Trim(txtStopTime1.text) = "" Then
            DTStopTime1.Value = format("00:00:00", "HH:mm:ss")
      Else
            DTStopTime1.Value = format(Trim(txtStopTime1.text), "HH:mm:ss")
      End If
      DTStopTime1.ZOrder
      DTStopTime1.SetFocus
End Sub

 

虽然图中的效果是实现了,在实际开发过程中,我们可能会经常使用到,我想这里完全可以做成自定义控件,需要的时候直接拖就好了。

此思路和实现效果是在Q群:VB6.0编程 263653236上的群友一起讨论优化得出的,如若有更好的想法可以留言告知我。

 

posted @ 2016-03-24 17:31  陈哲Gilbert  阅读(6001)  评论(0编辑  收藏  举报