当前位置: 代码迷 >> VFP >> 日历控件Olecontro1的使用有关问题,希望高手帮忙解决
  详细解决方案

日历控件Olecontro1的使用有关问题,希望高手帮忙解决

热度:686   发布时间:2013-02-26 00:00:00.0
日历控件Olecontro1的使用问题,希望高手帮忙解决!
首先我现在用的是VFP6.0版本。
我想做的事情就是输入一个大于今天的时间段。比如一个文本框中输入“2007年4月一日”,另一个文本框中输入一个大于第一个文本框中的数据,却“2007年5月三日”。

我想这样做,当点击任一个文本框中,它的右下角出现日历控件,然后在里面选择年月日,当选择了之后自动把年月日填到文本框中,日历控件消失。


请大家来帮帮我好吗?

------解决方案--------------------------------------------------------
就用VFP自带的控件 MSCOMCt2.ocx ,在上面直接选择多方便呀。
(DateTimePicker)

为什么用个文本框还要用个日历控件。
------解决方案--------------------------------------------------------
完全按你的要求也是可以的:

设文本框名为:TEXT1
日历控件名为:OLECONTROL1

TEXT1的Click事件:

thisform.olecontrol1.visible=.t.
thisform.olecontrol1.setfocus()


OLECONTROL1的Change事件:

thisform.text1.value=ttod(this._value)
this.visible=.f.


OLECONTROL1的Init事件:
this.visible=.f.

------解决方案--------------------------------------------------------
有这个控件,文件名:MSCOMCt2.ocx
------解决方案--------------------------------------------------------
应该在你的工程里面选择自定义类库就行了

如果需要注册话
老大给了一个注册的方法:
IF FILE( 'xpbutton.ocx ')
oll=CREATEOBJECT( 'Wscript.shell ')
IF oll.RUN( "REGSVR32 /S xpbutton.ocx ",0,.T.)!=0 &&注册
MESSAGEBOX( '控件注册失败! ',16, '信息提示 ')
ENDIF
*oll.RUN( "REGSVR32 /U /S xpbutton.ocx ",0,.T.) &&解除注册
RELEASE oll
ELSE
waitstr= "缺少 mscomctl.ocx 文件... "
WAIT waitstr WINDOWS AT SROWS()/2,(SCOLS()-LEN(waitstr))/2 TIMEOUT 5
CLOSE ALL
CLEAR ALL
RETURN
ENDIF

------解决方案--------------------------------------------------------
打开VFP6.0
工具 菜单
选项 菜单
控件 选项卡
在ActiveX控件内选择 Microsoft Date and Time Picker Control 6.0
设置为默认值
确定

打开表单
在表单控件(按钮就是这里选的)里先ActiveX控件,就会看见Microsoft Date and Time Picker Control 6.0
将这个控件拖放到表单上即可。
------解决方案--------------------------------------------------------
豆三说的那个控件不好用,

小黑要的功能建议使用双击弹出控件,日期控件放在另一个表单上,

在文本框的DBCLICK中写:do form setdate with this.value to this.value

在setdate表单中接收已设置的值,并检验其合法性,选择完了返回一个日期值
------解决方案--------------------------------------------------------
如果有数据绑定,最好不要直接绑定,因为vfp的null与ado的null不同,有null值时,会出错。
  相关解决方案