Добавить календарь в ComboBox - PullRequest
0 голосов
/ 14 апреля 2019

Я создаю форму для новых пользователей и хочу, чтобы технические специалисты могли выбрать дату окончания для учетной записи AD.Если дата окончания не выбрана, срок действия устанавливается на неограниченный срок.Я пытаюсь добавить календарь в комбинированный список, но он не отображается.

Я попытался использовать DateTimePicker, но это не позволяет мне редактировать дату в текстовом поле и не позволяет мневообще не выбирайте дату

$box = New-Object System.Windows.Forms.ComboBox
$box.Location = New-Object System.Drawing.Point(130,390)
$box.Size = New-Object System.Drawing.Size(250,30)
$box.DropDownHeight = 200

$calendar = New-Object System.Windows.Forms.MonthCalendar
$calendar.ShowTodayCircle = $false
$calendar.MaxSelectionCount = 1 

$box.Items.Add($calendar)

Я бы хотел, чтобы в выпадающем списке при нажатии на стрелку отображался календарь в раскрывающемся списке.

1 Ответ

0 голосов
/ 15 апреля 2019

Есть много примеров того, как вы могли бы реализовать это. WPF более элегантен, но вы используете WinForms, поэтому он не такой гибкий.

Вы можете попробовать один из следующих вариантов:

Разница между элементом управления Calendar & Date Picker в WPF?

Работа с календарем WPF

Выбор выпадающего списка дат

В целом, ваш запрос является дубликатом этого, но это для WPF, и вы используете WinForm ....

Как получить информацию DatePicker и TextBox из XAML в переменную Powershell?

Подход WinForm будет выглядеть примерно так ...

Два элемента управления Calendar для PowerShell

Примеры кода для вышеперечисленного слишком длинны для размещения здесь. Таким образом, нажмите на них и скопируйте пасту по мере необходимости.

или это

Эй, сценарист! Может ли Windows PowerShell уменьшить мою потребность в наборе даты?

Get-DatePickerFunction.ps1 
Function Get-DatePicker 
{   
    [System.Reflection.Assembly]::LoadWithPartialName(“System.windows.forms”) | 
    Out-Null 

    $WinForm = New-Object Windows.Forms.Form   
    $WinForm.text = “DatePicker Control”   
    $WinForm.Size = New-Object Drawing.Size(205,55) 

    $DatePicker = New-Object System.Windows.Forms.DateTimePicker   
    #$DatePicker.Format = [windows.forms.datetimepickerFormat]::custom 
    #$DatePicker.CustomFormat = “MM-dd-yyyy” 
    $WinForm.Controls.Add($DatePicker)   

    $WinForm.Add_Shown($WinForm.Activate())  
    $WinForm.showdialog() | Out-Null  
    $DatePicker.value 
} #end function Get-DatePicker 

# *** Entry point to script *** 

# Get-EventLog -LogName application -After [datetime](Get-Datepicker) # Windows PowerShell 2.0 call 
# wps 1.0 version of call 
$dte = [datetime](Get-DatePicker) 
Get-EventLog -LogName application | 
Where-Object { $_.timeWritten -gt $dte } 

Как вообще не выбирать дату. Установите в ноль Если вы не сделаете это обязательным, вы должны разрешить просто пропуск записи. Приведенные выше примеры показывают, что возвращаемое значение может быть необязательным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...