将日历添加到 ComboBox
Add Calendar to ComboBox
我正在创建一个新用户入职表格,我希望技术人员能够select AD 帐户的结束日期。如果没有结束日期 selected,则到期时间设置为无限制。我正在尝试将日历添加到组合框,但它不会出现。
我试过使用 DateTimePicker,但这不允许我在文本字段中编辑日期,也不允许我选择任何日期
$box = New-Object System.Windows.Forms.ComboBox
$box.Location = New-Object System.Drawing.Point(130,390)
$box.Size = New-Object System.Drawing.Size(250,30)
$box.DropDownHeight = 200
$calendar = New-Object System.Windows.Forms.MonthCalendar
$calendar.ShowTodayCircle = $false
$calendar.MaxSelectionCount = 1
$box.Items.Add($calendar)
我想让组合框在单击箭头时在下拉列表中显示日历。
有很多示例可以说明如何实现它。 WPF 更优雅,但您使用的是 WinForms,所以它不那么灵活。
您可以尝试考虑以下其中一项:
Difference between Calendar & Date Picker control in WPF?
总而言之,您的查询与此重复,但这是针对 WPF 的,而您使用的是 WinForm....
WinForm 方法类似于这样...
Two Calendar Controls for PowerShell
上面的代码示例太长 post 放在这里。因此,点击这些并根据需要复制粘贴。
或者这个
Hey, Scripting Guy! Can Windows PowerShell Alleviate My Need to Type Dates?
Get-DatePickerFunction.ps1
Function Get-DatePicker
{
[System.Reflection.Assembly]::LoadWithPartialName(“System.windows.forms”) |
Out-Null
$WinForm = New-Object Windows.Forms.Form
$WinForm.text = “DatePicker Control”
$WinForm.Size = New-Object Drawing.Size(205,55)
$DatePicker = New-Object System.Windows.Forms.DateTimePicker
#$DatePicker.Format = [windows.forms.datetimepickerFormat]::custom
#$DatePicker.CustomFormat = “MM-dd-yyyy”
$WinForm.Controls.Add($DatePicker)
$WinForm.Add_Shown($WinForm.Activate())
$WinForm.showdialog() | Out-Null
$DatePicker.value
} #end function Get-DatePicker
# *** Entry point to script ***
# Get-EventLog -LogName application -After [datetime](Get-Datepicker) # Windows PowerShell 2.0 call
# wps 1.0 version of call
$dte = [datetime](Get-DatePicker)
Get-EventLog -LogName application |
Where-Object { $_.timeWritten -gt $dte }
至于完全不选日期。将其设置为 null 除非您强制执行此操作,否则您应该只允许跳过该条目。上面的示例表明值 return 可以是可选的。
我正在创建一个新用户入职表格,我希望技术人员能够select AD 帐户的结束日期。如果没有结束日期 selected,则到期时间设置为无限制。我正在尝试将日历添加到组合框,但它不会出现。
我试过使用 DateTimePicker,但这不允许我在文本字段中编辑日期,也不允许我选择任何日期
$box = New-Object System.Windows.Forms.ComboBox
$box.Location = New-Object System.Drawing.Point(130,390)
$box.Size = New-Object System.Drawing.Size(250,30)
$box.DropDownHeight = 200
$calendar = New-Object System.Windows.Forms.MonthCalendar
$calendar.ShowTodayCircle = $false
$calendar.MaxSelectionCount = 1
$box.Items.Add($calendar)
我想让组合框在单击箭头时在下拉列表中显示日历。
有很多示例可以说明如何实现它。 WPF 更优雅,但您使用的是 WinForms,所以它不那么灵活。
您可以尝试考虑以下其中一项:
Difference between Calendar & Date Picker control in WPF?
总而言之,您的查询与此重复,但这是针对 WPF 的,而您使用的是 WinForm....
WinForm 方法类似于这样...
Two Calendar Controls for PowerShell
上面的代码示例太长 post 放在这里。因此,点击这些并根据需要复制粘贴。
或者这个
Hey, Scripting Guy! Can Windows PowerShell Alleviate My Need to Type Dates?
Get-DatePickerFunction.ps1
Function Get-DatePicker
{
[System.Reflection.Assembly]::LoadWithPartialName(“System.windows.forms”) |
Out-Null
$WinForm = New-Object Windows.Forms.Form
$WinForm.text = “DatePicker Control”
$WinForm.Size = New-Object Drawing.Size(205,55)
$DatePicker = New-Object System.Windows.Forms.DateTimePicker
#$DatePicker.Format = [windows.forms.datetimepickerFormat]::custom
#$DatePicker.CustomFormat = “MM-dd-yyyy”
$WinForm.Controls.Add($DatePicker)
$WinForm.Add_Shown($WinForm.Activate())
$WinForm.showdialog() | Out-Null
$DatePicker.value
} #end function Get-DatePicker
# *** Entry point to script ***
# Get-EventLog -LogName application -After [datetime](Get-Datepicker) # Windows PowerShell 2.0 call
# wps 1.0 version of call
$dte = [datetime](Get-DatePicker)
Get-EventLog -LogName application |
Where-Object { $_.timeWritten -gt $dte }
至于完全不选日期。将其设置为 null 除非您强制执行此操作,否则您应该只允许跳过该条目。上面的示例表明值 return 可以是可选的。