Office中国论坛/Access中国论坛

标题: 如何使打开的日历窗体在按钮旁边 [打印本页]

作者: xryacc2    时间: 2009-11-23 19:27
标题: 如何使打开的日历窗体在按钮旁边
因为之前的日期输入文本框都没有做成可用日历的,现在只好在旁边加了个按钮,用Calendar控件,但这个控件建立的日历窗体当你打开时,却远离按钮,如何解决这个问题?请高手不吝赐教?
注意:不要说用日历窗体movesize,因为面对各个需要输入的窗体的日期文本框都不可能在同一个地方。
---万谢了。
作者: todaynew    时间: 2009-11-23 19:46
本帖最后由 todaynew 于 2009-11-23 19:49 编辑

好像还是需要用move,只要双击文本框,让控件移动过来就行了。
sub 移动日历(ctl as control)
    Calendar0.move ctl.left,ctl.top+ctl.height
end sub

调用时:
call 移动日历(me.contrlos("text0"))
作者: xryacc2    时间: 2009-11-23 20:31
请问todaynew 老师,你的代码中Calendar0是日历控件的名称吧,我试了一下,Calendar0.move ctl.left,ctl.top+ctl.height这句代码好像行不通,是不是有其他没完善的?可否写个完整代码?或上传个成功的例子?
作者: aslxt    时间: 2009-11-23 21:26
用DTPicker吧,不用移动的
作者: xryacc2    时间: 2009-11-23 21:28
用了一种很愚笨的方法可以做到,但比较麻烦,说来与大家共享,
在全局变量里定义right和down的变量,在日历窗体的加载事件中写入这两个变量,在各个应用窗口打开日历控件窗体前写代码,把变量赋值,这个值需要编写者给具体多少数据前试着移动窗体的最佳位置得出的数值。
比如:(1)全局变量声明:public rightnum,downnum
       (2)在日历的form_load窗体中写入代码:docmd.movesize ""& rightnum &"",""& downnum &""
         (3)在各个应用窗体的打开日历事件中写入: rightnum=9900
                                                                   downnum=3200
                                                                   docmd.openform "日历窗体名"
这样可以达到效果,只是增加编写者的工作量,不同窗体需要用到日历的位置各个相同,需要编写者给变量赋不同的值。
作者: xryacc2    时间: 2009-11-23 21:31
只是我之前要用到日历的控件都是文本框,用DTPicker则还需要到各处换控件,所以新做的要用到日历的就尽量用DTPicker了。
作者: ui    时间: 2009-11-24 11:14
access2007直接支持,不用写代码
作者: oshuny    时间: 2010-1-12 19:24
正要学




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3