1

日付の選択範囲を許可するPowerShellカレンダーがあります。MaxDateプロパティは現在の日として設定されます。私が抱えている問題は、今日の日付を選択できるが、範囲の一部としては選択できないということです。複数の日付を選択できますが、今日の日付を選択に含めるとすぐに、今日の日付のみが選択されます。MaxDateプロパティを削除すると、範囲の一部として今日の日付を選択できるため、問題が発生する可能性がありますが、将来の日数を選択できるため、これは行いたくありません。今日の日付を追加して、選択した範囲の一部にする方法はありますか?コードは以下のとおりです。ありがとう。

    $Calendar = New-Object System.Windows.Forms.MonthCalendar 
    $Calendar.Location = New-Object System.Drawing.Size(10,80)
    $Calendar.ShowTodayCircle = $False
    $Calendar.MaxDate = Get-Date
    $Calendar.MinDate = $OldestLog
    $Calendar.MaxSelectionCount = "365"
    $MenuBox.Controls.Add($Calendar) 
4

1 に答える 1

2

の値がMaxDate範囲内で利用できないようです。それには理由があるかもしれませんが、それをバグと呼びましょう。回避策は、次のように、翌日をとして使用し、MaxDate将来の日の選択を手動で処理することです。

#Handler to check and save selected date
$handler_Calendar_DateChanged= 
{
    Write-Host "$Calendar.SelectionRange"
    if ($Calendar.SelectionRange.End -gt (Get-Date)) {
        [System.Windows.Forms.MessageBox]::Show("You can't select a date in the future.", "Invalid date", [System.Windows.Forms.MessageBoxButtons]::OK ,[System.Windows.Forms.MessageBoxIcon]::Error)
        #Select todays date
        $Calendar.SetDate((Get-Date))
    } else {
        #Store selected daterange
        $global:daterange = $Calendar.SelectionRange
    }
}

#Later when you specify the calendar object
$Calendar.MaxDate = (Get-Date).AddDays(1)
$Calendar.add_DateChanged($handler_Calendar_DateChanged)
于 2013-02-20T22:50:13.313 に答える