读书人

一个动态生成的DTPicker控件的有关问题

发布时间: 2012-04-09 13:41:25 作者: rapoo

求助一个动态生成的DTPicker控件的问题
窗口代码里面输入以下代码
Dim WithEvents BirthDatePicker As VBControlExtender '日期选择器
Private Sub Form_Load()
Licenses.Add "MSComctl2.DTPicker"
Set BirthDatePicker = Controls.Add("MSComctl2.DTPicker", "BirthDatePicker", Form1)
With BirthDatePicker
.Height = 270
.Width = 1350
.Value = Now - 14 * 365 - 4
.Visible = True
End With
End Sub
运行时 运行到value时总是出现错误 说不支持该属性或方法
把这一句变成注释后可以正常运行
但是方法中却没有Change()这一项 只有很少的几项
导致我没办法初始化日期 也没有办法判断是否发生更改
不知道是发生了什么错误
最近一直都是用代码生成控件的 都快被搞疯了
求助于各位大侠帮忙 小弟在此谢谢了

[解决办法]
VBControlExtender 是没有 Value 属性的。

VB code
Option ExplicitDim WithEvents BirthDatePicker As VBControlExtenderPrivate Sub Form_Load()    Dim dtp As Object        Licenses.Add "MSComctl2.DTPicker"    Set BirthDatePicker = Controls.Add("MSComctl2.DTPicker", "BirthDatePicker", Form1)    With BirthDatePicker        .Height = 270        .Width = 1350        .Visible = True    End With        Set dtp = BirthDatePicker    dtp.Value = Now - 14 * 365 - 4End Sub
[解决办法]
VB code
Option ExplicitDim WithEvents BirthDatePicker As VBControlExtenderPrivate Sub BirthDatePicker_ObjectEvent(Info As EventInfo)        Select Case Info.Name    Case "Click"      ' 在此处处理 Click 事件。    Case "Change"        MsgBox BirthDatePicker.object.Value            ' 在这里处理其他情况    Case Else ' 未知事件      ' 在此处理各种未知的事件。   End SelectEnd SubPrivate Sub Form_Load()        Licenses.Add "MSComctl2.DTPicker"    Set BirthDatePicker = Controls.Add("MSComctl2.DTPicker", "BirthDatePicker", Form1)    With BirthDatePicker        .Height = 270        .Width = 1350        .object.Value = Now        .Visible = True    End With    End Sub 

读书人网 >VB

热点推荐