创建图形日期选取器Creating a Graphical Date Picker
复制以下内容并将其粘贴到 Windows PowerShell ISE 中,然后将其另存为 Windows PowerShell 脚本 (.ps1)。
该脚本首先加载两个 .NET Framework 类:System.Drawing 和 System.Windows.Forms。然后,启动 .NET Framework 类 Windows.Forms.Form 的新实例;它提供一个可以开始添加控件的空白窗体或窗口。
在创建 Form 类的实例后,为此类的三个属性赋值。
大小。这是窗体的大小(以像素为单位)。上述脚本创建的窗体大小为宽 243 像素、高 230 像素。
StartingPosition。在上述脚本中,此可选属性将设置为 CenterScreen。如果未添加此属性,Windows 将在窗体打开时选择一个位置。通过将 StartingPosition 设置为 CenterScreen,可使窗体在每次加载时都自动显示在屏幕中间。
$form.Text = 'Select a Date'
$form.Size = New-Object Drawing.Size @(243,230)
$form.StartPosition = 'CenterScreen'
接下来,在窗体中创建并添加一个日历控件。在此示例中,当前日期未突出显示或带圆圈。用户一次只可以在日历上选择一天。
$OKButton.Location = New-Object System.Drawing.Point(38,165)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = 'OK'
$form.AcceptButton = $OKButton
$form.Controls.Add($OKButton)
采用相同方式创建“取消”按钮。“取消”按钮距窗口上边缘 165 像素,但距左边缘 113 像素。
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Point(113,165)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = 'Cancel'
$form.Controls.Add($CancelButton)
将 Topmost 属性设置为 $True,以强制此窗口在其他已打开的窗口和对话框之上打开。
添加以下代码行以在 Windows 中显示该窗体。
$result = $form.ShowDialog()
if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
$date = $calendar.SelectionStart
Write-Host "Date selected: $($date.ToShortDateString())"
}