【发布时间】:2019-06-03 07:40:38
【问题描述】:
有没有办法在加载时将 dateTime 控件设置为空白?
我有
class DateTime extends Tabs.Tab.Workspace.GenericControl
{
ControlType := "DateTime"
DefaultOptions := "ChooseNone"
New()
{MsgBox, % this.GuiControlGet()
}
DateTimeChanged(_CtrlHwnd, _GuiEvent, _EventInfo, _ErrorLevel:="")
{
MsgBox, % this.GuiControlGet()
}
Clear()
{
this.GuiControl("", A_Now)
this.GuiControl("", "")
this.GuiControl("", "")
}
}
或者
ControlType := "DateTime"
DefaultOptions := "Choose20200202"
chooseNone 默认仍然显示今天的日期,这很好,除非将值传输到工作表时,即使控件中未选中该框,该值仍会传输。
将值传输到工作表的代码。
WorkbookPopulate(MyWorkbook, TabsObj) {
for TabNumber, ThisTab in TabsObj.TabList {
for ControlType, ThisControlType in ThisTab.Workspace.Controls {
; Special case: skip the TabOrder object TODO maybe this should be rethought? On
; the other hand, this simplifies adding controls to the TabOrder
if (ControlType = "TabOrder")
continue
for ControlName, ThisControl in ThisControlType {
if (ThisControl.ExcelCell != "") {
MyValue := ThisControl.GuiControlGet()
; Change MyValue as a special case for Checkboxes
if (ControlType = "Checkbox") {
;~ MyValue := MyValue = 1 ? "a" : "c" ; Use "Marlett" font in template
MyValue := MyValue = 1 ? Chr(0x2713) : "" ;Chr(0x2610)
;Chr(0x2610) - BALLOT BOX
;Chr(0x2611) - BALLOT BOX WITH CHECK
;Chr(0x2612) - BALLOT BOX WITH X
;Chr(0x2713) - CHECK MARK
;Chr(0x2714) - HEAVY CHECK MARK
}
if (ControlType = "DateTime")
FormatTime, MyValue, %MyValue%, MMMM dd, yyyy
MyWorkbook.Sheets(ThisControl.ExcelSheet).Range(ThisControl.ExcelCell).Value
:= MyValue
}
}
}
}
}
【问题讨论】:
标签: javascript c++ autohotkey