当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 创建图形日期选择器

作者:精品下载站 日期:2024-12-14 03:01:48 浏览:16 分类:玩电脑

创建图形日期选择器


该示例仅适用于Windows平台。

使用 Windows PowerShell 3.0 及更高版本创建一个带有图形、日历样式控件的表单,该控件允许用户选择一个月中的某一天。

创建图形日期选择器控件

将以下内容复制并粘贴到 Windows PowerShell ISE 中,然后将其另存为 PowerShell 脚本 (.ps1) 文件。

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

$form = New-Object Windows.Forms.Form -Property @{
    StartPosition = [Windows.Forms.FormStartPosition]::CenterScreen
    Size          = New-Object Drawing.Size 243, 230
    Text          = 'Select a Date'
    Topmost       = $true
}

$calendar = New-Object Windows.Forms.MonthCalendar -Property @{
    ShowTodayCircle   = $false
    MaxSelectionCount = 1
}
$form.Controls.Add($calendar)

$okButton = New-Object Windows.Forms.Button -Property @{
    Location     = New-Object Drawing.Point 38, 165
    Size         = New-Object Drawing.Size 75, 23
    Text         = 'OK'
    DialogResult = [Windows.Forms.DialogResult]::OK
}
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)

$cancelButton = New-Object Windows.Forms.Button -Property @{
    Location     = New-Object Drawing.Point 113, 165
    Size         = New-Object Drawing.Size 75, 23
    Text         = 'Cancel'
    DialogResult = [Windows.Forms.DialogResult]::Cancel
}
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)

$result = $form.ShowDialog()

if ($result -eq [Windows.Forms.DialogResult]::OK) {
    $date = $calendar.SelectionStart
    Write-Host "Date selected: $($date.ToShortDateString())"
}

该脚本首先加载两个 .NET Framework 类:System.DrawingSystem.Windows.Forms。然后启动 .NET Framework 类 Windows.Forms.Form 的新实例。这提供了一个空白窗体或窗口,您可以开始向其中添加控件。

$form = New-Object Windows.Forms.Form -Property @{
    StartPosition = [Windows.Forms.FormStartPosition]::CenterScreen
    Size          = New-Object Drawing.Size 243, 230
    Text          = 'Select a Date'
    Topmost       = $true
}

此示例使用 Property 属性和哈希表为此类的四个属性分配值。

  1. StartPosition:如果不添加此属性,Windows 将在打开表单时选择一个位置。通过将此属性设置为CenterScreen,每次加载表单时,您都会自动在屏幕中间显示表单。

  2. 大小:这是表单的大小,以像素为单位。前面的脚本创建了一个宽 243 像素、高 230 像素的表单。

  3. 文本:这将成为窗口的标题。

  4. 最上面:通过将此属性设置为$true,您可以强制窗口在其他打开的窗口和对话框之上打开。

接下来,创建日历控件,然后将其添加到表单中。在此示例中,当前日期未突出显示或圈出。用户一次只能选择日历上的一天。

$calendar = New-Object Windows.Forms.MonthCalendar -Property @{
    ShowTodayCircle   = $false
    MaxSelectionCount = 1
}
$form.Controls.Add($calendar)

接下来,为您的表单创建一个确定按钮。指定确定按钮的大小和行为。在此示例中,按钮位置距离表单顶部边缘 165 像素,距离左边缘 38 像素。按钮高度为 23 像素,按钮长度为 75 像素。该脚本使用预定义的 Windows 窗体类型来确定按钮行为。

$okButton = New-Object Windows.Forms.Button -Property @{
    Location     = New-Object Drawing.Point 38, 165
    Size         = New-Object Drawing.Size 75, 23
    Text         = 'OK'
    DialogResult = [Windows.Forms.DialogResult]::OK
}
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)

同样,您创建一个取消按钮。 取消按钮距顶部 165 像素,距窗口左边缘 113 像素。

$cancelButton = New-Object Windows.Forms.Button -Property @{
    Location     = New-Object Drawing.Point 113, 165
    Size         = New-Object Drawing.Size 75, 23
    Text         = 'Cancel'
    DialogResult = [Windows.Forms.DialogResult]::Cancel
}
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)

添加以下代码行以在 Windows 中显示表单。

$result = $form.ShowDialog()

最后,if 块内的代码指示 Windows 在用户在日历上选择一天后如何处理表单,然后单击确定按钮或按 >Enter 键。 Windows PowerShell 向用户显示所选日期。

if ($result -eq [Windows.Forms.DialogResult]::OK) {
    $date = $calendar.SelectionStart
    Write-Host "Date selected: $($date.ToShortDateString())"
}

参见

  • GitHub:Dave Wyatt 的 WinFormsExampleUpdates
  • Windows PowerShell 本周提示:创建图形日期选择器)

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯