Отображение дат. Использование элементов управления MonthCalendar и DateTimePicker

Обновлен: Ноябрь 2007

Это занятие рассказывает о том, как отображать даты в форме Windows Forms. Также вы узнаете, как выполняется действие при выборе даты пользователем.

Использование элемента управления, отображающего календарь, значительно упрощает для пользователя выбор даты. Кроме того, такие элементы управления гарантируют, что дата будет отформатирована правильно. Календарь можно отобразить с помощью элемента управления MonthCalendar или DateTimePicker.

Элемент управления MonthCalendar позволяет отображать календарь для одного или нескольких месяцев. При этом пользователи могут выбирать отдельную дату или диапазон дат.

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

Процесс, используемый для извлечения даты из этих элементов управления, зависит от конкретного используемого элемента. Используйте свойство Start для элемента управления MonthCalendar и свойство Value для элемента управления DateTimePicker.

Практическое задание

Извлечение даты и ее отображение в метке

  1. В меню Файл выберите команду Создать проект.

    Откроется диалоговое окно Создание проекта.

  2. Выберите элемент Приложение Windows Forms и нажмите кнопку ОК.

  3. Добавьте в форму элемент Label, оставив имя по умолчанию Label1.

  4. Удалите текст из свойства Text элемента управления Метка.

  5. Добавьте в форму элемент управления MonthCalendar, оставив имя по умолчанию MonthCalendar1.

  6. Дважды щелкните элемент управления MonthCalendar, чтобы открыть обработчик событий по умолчанию в редакторе кода.

  7. В обработчике событий MonthCalendar1_DateChanged добавьте следующий код для добавления элементов в список.

    Me.Label1.Text = CStr(Me.MonthCalendar1.SelectionRange.Start)
    
  8. Вернитесь в режим конструктора и добавьте в форму элемент управления DateTimePicker, оставив имя по умолчанию DateTimePicker1.

  9. Дважды щелкните элемент управления DateTimePicker, чтобы открыть обработчик событий по умолчанию в редакторе кода.

  10. В обработчике событий DateTimePicker_ValueChanged добавьте следующий код для добавления элементов в список.

    Me.Label1.Text = CStr(Me.DateTimePicker1.Value)
    
  11. Нажмите клавишу F5 для запуска программы.

  12. Когда появится форма, выберите дату в элементе управления MonthCalendar и убедитесь, что она отображается в метке.

  13. Щелкните стрелку раскрывающегося списка элемента управления DateTimePicker и выберите дату.

    Дата и время отображаются в метке.

  14. Закройте программу.

Извлечение нескольких дат

Диапазон дат, выбранных в элементе управления MonthCalendar, можно извлечь с помощью свойств Start и End свойства SelectionRange. По умолчанию максимальное число дней, которые можно выбрать, равно 7, но при необходимости этот параметр можно изменить, установив значение свойства MaxSelectionCount. Чтобы определить, выбран ли диапазон дат, просто проверьте, совпадают ли даты начала и конца.

Извлечение диапазона дат из элемента управления календарем месяца

  1. Замените код в обработчике событий MonthCalendar1_DateChanged следующим. Этот код устанавливает максимальное число дней (две недели), которые могут быть выбраны в элементе управления. Он отображает дату начала в метке, если выбран только один день, и отображает диапазон дат при выборе диапазона дней в элементе управления MonthCalendar.

    Me.MonthCalendar1.MaxSelectionCount = 14
    
    If Me.MonthCalendar1.SelectionRange.Start = _
        Me.MonthCalendar1.SelectionRange.End Then
    
        Me.Label1.Text = CStr(Me.MonthCalendar1.SelectionStart)
    
    Else
    
        Me.Label1.Text = Me.MonthCalendar1.SelectionRange.Start & _
            " - " & Me.MonthCalendar1.SelectionRange.End
    
    End If
    
  2. Нажмите клавишу F5 для запуска программы.

  3. Когда появится форма, выберите диапазон дат в элементе управления MonthCalendar и убедитесь, что диапазон дат появился в метке.

  4. Закройте программу.

Форматирование дат

Даты, возвращаемые элементами управления MonthCalendar и DateTimePicker, можно форматировать с помощью функции FormatDateTime. Существует несколько констант, которые можно использовать для указания формата даты.

Константа

Описание

Пример (на основе региональных параметров по умолчанию "Английский (США)")

DateFormat.GeneralDate

Отображает дату, время или оба значения. Если присутствует дата, она отображается в кратком формате. Если присутствует время, оно отображается в полном формате. Если присутствует и время, и дата, отображаются обе части.

22/11/1963 12:00:00 PM

DateFormat.LongDate

Отображает дату в полном формате, который определяется установленными на компьютере региональными параметрами.

Пятница, 22 ноября, 1963

DateFormat.ShortDate

Отображает дату в кратком формате, который определяется установленными на компьютере региональными параметрами.

11/22/1963

DateFormat.LongTime

Отображает время в полном формате, который определяется установленными на компьютере региональными параметрами.

12:00:00 PM

DateFormat.ShortTime

Отображает время в 24-часовом формате (чч:мм).

12:00

Форматирование даты в метке

  1. Замените код в обработчике событий MonthCalendar1_DateChanged следующим. Этот код форматирует дату, возвращаемую в полном формате.

    Me.MonthCalendar1.MaxSelectionCount = 14
    
    If Me.MonthCalendar1.SelectionRange.Start = _
        Me.MonthCalendar1.SelectionRange.End Then
    
        Me.Label1.Text = FormatDateTime( _
            Me.MonthCalendar1.SelectionStart, _
            DateFormat.LongDate)
    Else
        Me.Label1.Text = FormatDateTime( _
            Me.MonthCalendar1.SelectionRange.Start, _
            DateFormat.LongDate) & " - " & FormatDateTime( _
            Me.MonthCalendar1.SelectionRange.End, DateFormat.LongDate)
    End If
    
  2. Замените код в обработчике событий DatePicker1_ValueChanged следующим. Этот код форматирует дату, возвращаемую в полном формате.

    Me.Label1.Text = FormatDateTime(Me.DateTimePicker1.Value, _
        DateFormat.LongDate)
    
  3. Нажмите клавишу F5 для запуска программы.

  4. Когда появится форма, выберите дату или диапазон дат в элементе управления MonthCalendar. Убедитесь, что дата или диапазон дат отображается в метке в полном формате.

  5. Выберите дату в элементе управления DateTimePicker и убедитесь, что дата в метке отображается в полном формате.

  6. Закройте программу.

Следующие действия

На этом занятии вы узнали, как извлечь даты, выбранные в элементах управления MonthCalendar и DateTimePicker, и отобразить их в форме Windows Forms. Также были показаны способы отображения диапазона дат и форматирования извлеченных дат. На следующем занятии вы узнаете, как использовать элементы управления данными.

Следующее занятие: Элементы управления данными. Отображение данных в элементах управления DataGridView

См. также

Ссылки

Общие сведения об элементе управления DateTimePicker (Windows Forms)

Общие сведения об элементе управления MonthCalendar (Windows Forms)

Функция FormatDateTime (Visual Basic)

Другие ресурсы

Создание внешнего вида программы. Введение в Windows Forms