找回密码
 加入
搜索
查看: 6151|回复: 9

[AU3基础] 关于 GUICtrlCreateDate日期控件 型态问题,请教是否可以达到以下效果??

  [复制链接]
发表于 2014-9-22 13:38:37 | 显示全部楼层 |阅读模式
一般来说 标准的控件 如果要手动输入日期  需要 分成 年 月 日 三段 手动输入

可不可以 达到  可以像 输入框(Input)控件 的方式  整个选取 删除 然后手动输入


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2014-9-22 18:58:56 | 显示全部楼层
那干脆用输入框来代替呀。但这样子,在改时间前要作很多的输入判断了。
GUICreate("Test", 300, 200)
$Input = GUICtrlCreateInput("", 32, 24, 120, 24)
$Date = GUICtrlCreateDate("", 150, 24, 17, 24)
GUICtrlSetData($Input, GUICtrlRead($Date))
GUISetState()
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3
                        Exit
                Case $Date
                        GUICtrlSetData($Input, GUICtrlRead($Date))
        EndSwitch
WEnd
发表于 2014-9-22 20:17:36 | 显示全部楼层
赞同2楼,判断直接用正则就OK了~
 楼主| 发表于 2014-9-23 08:56:49 | 显示全部楼层
回复 2# user3000

我理解  問題是 客戶要求 要有日期控件  可以用選的..... 又想要可以手動輸入
发表于 2014-9-23 09:31:50 | 显示全部楼层
可以换个方向思考,在界面上做一个不可见的input,当用户在日期控件输入时,默认输入在这个不可见input中,用户输入完毕,然后转换成日期格式,将数值更新到日期空间中。
发表于 2014-9-23 13:05:36 | 显示全部楼层
本帖最后由 shqf 于 2014-9-23 13:13 编辑

楼主试试以下代码,XP系统中效果还可以。我用了二个input,一个button,模拟date控件。按了button,才显示真正的date控件。选择日期后代码会将日期数值读到input中并show input。button中的小三角还需要再搞一下。
#include <ButtonConstants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 306, 184, 402, 166)
$Input1 = GUICtrlCreateInput("", 72, 40, 122, 21)
$Input2 = GUICtrlCreateInput("", 190, 40, 17, 21)
GUICtrlSetState(-1,$GUI_DISABLE)
$Button1 = GUICtrlCreateButton("v", 190, 42, 15, 18,$WS_EX_CLIENTEDGE)

$Date1 = GUICtrlCreateDate("2014/09/23 12:17:15", 72, 40, 135, 22)
GUICtrlSetState(-1,$GUI_HIDE)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        GUICtrlSetState($Input1,$GUI_HIDE)
                        GUICtrlSetState($Input2,$GUI_HIDE)
                        GUICtrlSetState($Button1,$GUI_HIDE)
                        GUICtrlSetState($Date1,$GUI_SHOW)
                        MouseClick ("left", default,Default)
                Case $date1
                        GUICtrlSetData($Input1,GUICtrlRead($Date1))
                        GUICtrlSetState($Input1,$GUI_SHOW)
                        GUICtrlSetState($Input2,$GUI_SHOW)
                        GUICtrlSetState($Button1,$GUI_SHOW)
                        GUICtrlSetState($Date1,$GUI_HIDE)
        EndSwitch
WEnd

评分

参与人数 1金钱 +40 收起 理由
kk_lee69 + 40 感謝回覆

查看全部评分

发表于 2014-9-23 13:18:16 | 显示全部楼层
输入框代替吧...
 楼主| 发表于 2014-9-24 17:34:41 | 显示全部楼层
回复 6# shqf

感謝 幫忙~~

我在測試看看  謝啦
发表于 2014-9-27 18:31:38 | 显示全部楼层
_WinAPI_GetWindowText($hctrl)
_WinAPI_SetWindowText($hctrl, '')
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 16:19 , Processed in 0.107407 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表