2013-02-20 83 views
1

我有一個允許選擇日期範圍的PowerShell日曆。 MaxDate屬性設置爲當天。我遇到的問題是我可以選擇今天的日期,但不能作爲範圍的一部分。我可以選擇多個日期,但只要在選擇中包含今天的日期,它就會選擇僅今天的日期。問題可能是MaxDate屬性,因爲如果我刪除它,我可以選擇今天的日期作爲範圍的一部分,但我不想這樣做,因爲這將允許在未來幾天選擇。任何想法如何添加今天的日期,並允許它成爲選定範圍的一部分?代碼如下。謝謝。日曆的Powershell 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) 

回答

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) 
+0

可能必須走這條路。感謝您的確認和建議。 – atownson 2013-02-20 22:56:53