0

Powershellを使用してGUIカレンダーを作成していますが、ユーザーが選択した日付の数に変数を割り当てることができる必要があります。イベントを使わなければならないと思いますが、どうすればいいのかわかりません。基本的に、ユーザーが10日を超える範囲を選択した場合、同じフォームのチェックボックスをオンにする必要があります。私はリストボックスで同じようなことをしていますが、カレンダーで同じことをする方法がわからないようです。ありがとう。

リストボックスコード:

$Listbox2 = New-Object System.Windows.Forms.ListBox 
$Listbox2.Location = New-Object System.Drawing.Size(240,80) 
$Listbox2.Size = New-Object System.Drawing.Size(140,210) 
$Listbox2.Height = 210
$Listbox2.SelectionMode = "MultiExtended"
$Listbox2Content | ForEach-Object {[void] $Listbox2.Items.Add($_)}
$Listbox2.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",11,0,3,1)
$Listbox2.Add_SelectedValueChanged({
    If (($Listbox2.SelectedItems).Count -ge 10) {$Checkbox2.Checked = $True}
    If (($Listbox2.SelectedItems).Count -lt 10) {$Checkbox2.Checked = $False}
    })

カレンダーコード:

$Calendar = New-Object System.Windows.Forms.MonthCalendar
$Calendar.Location = New-Object System.Drawing.Size(12,80)
$Calendar.ShowTodayCircle = $False
$Calendar.ShowToday = $True
$Calendar.MaxDate = (Get-Date).AddDays(1)
$Calendar.MinDate = $OldestLog
$Calendar.MaxSelectionCount = "$CalendarDateRange"
$MenuBox.Controls.Add($Calendar)
4

1 に答える 1

1

$data_selectedスクリプトブロックは、選択した日付の数を出力します。イベントに添付したDataSelectedので、日付をクリックしたり、範囲を選択したりすると起動します。

Add-Type -AssemblyName System.Windows.Forms
$date_selected = {
    write-host (($_.End - $_.Start).Days + 1)
}

$form = New-Object Windows.Forms.Form   
$form.text = "Calendar"
$form.FormBorderStyle = 'FixedDialog'
$form.Size = New-Object Drawing.Size(190,190) 

$cal = New-Object System.Windows.Forms.MonthCalendar   
$cal.add_DateSelected($date_selected)

$form.Controls.Add($cal)
$form.Add_Shown($form.Activate())  
$form.showdialog() | Out-Null  
于 2013-03-26T03:06:48.557 に答える