Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7777777777.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
80.44 Кб
Скачать

11/ Елементи управління MonthCalendar та DateTimePicker

У Visual Basic існують елементи управління MonthCalendar і DateTimePicker, що дозволяють працювати з датами. Об'єктом MonthCalendar є календар, за допомогою якого можна вибрати деякий діапазон дат. Елемент управління DateTimePicker має вигляд текстового поля з розташованою справа кнопкою, при натисненні якої відкривається календар. Цей елемент управління, як правило, використовують для економії місця на формі і при виборі однієї дати.

Елемент управління MonthCalendar

Елемент управління MonthCalendar – це календар, за допомогою якого можна вибирати дату. У його верхній частині розташовані кнопки із стрілками, що дозволяє переміщатися по місяцях. За замовчуванням в нижній частині календаря відображається поточна дата.

Зовнішній вигляд елементу управління

Для управління зовнішнім виглядом календаря застосовуються наступні властивості:

ShowToday - значення за замовчування True дозволяє відображати в нижній частині календаря поточну дату;

ShowTodayCircle - значення за замовчуванням True задає виділення поточної дати;

ShowWeekNumbers – при встановленні значення True з лівого боку календаря відображається стовпець з номерами тижнів. За замовчуванням встановлено значення False;

ScrollChange – визначає крок, з яким здійснюватиметься прокрутка календаря при натисненні кнопок переміщення по місяцях. За замовчуванням встановлено послідовне переміщення по всіх місяцях.

Перераховані в таблиці властивості дозволяють змінити використовувані за замовчуванням кольори розділів календаря.

Властивість

Опис

ForeColor

Задає колір днів месяця і лінії, разташованої під днями тижня

BackColor

Задає колір фону області, на якій розташовані дні місяця

TitleBackColor

Задає колір області заголовку календаря, в якій розташовані назви місяця, а також колір днів тижня

TitleForeColor

Задає колір назви месяця і року

TrailingForeColor

Задає колір днів не поточного месяца, якщо вони відображаються в календарі

У формі можна відобразити одночасно декілька місяців, задавши число рядків і стовпців в календарі за допомогою властивості CalendarDimensions. При цьому відобразити можна не більше 12 місяців. На малюнку показаний календар з шістьма місяцями, розташованими в два ряди і три колонки.

Для визначення дня тижня, що відображається першим в календарі, служить властивість FirstDayOfWeek. Наприклад, щоб першим відображалося неділя, треба задати для цієї властивості значення Sunday.

Виділення дат

За допомогою наступних властивостей можна задати список дат, що виділяються напівжирним шрифтом при відображенні календаря:

AnnuallyBoldedDates – список дат, що повторюються щорічно (наприклад, дні народження);

BoldedDates – спісок окремих дат;

MonthlyBoldedDates - спісок дат, що повторюються щомісячно.

Додати в список нові значення і видалити з нього непотрібні можна за допомогою кнопок Add (Додати) або Remove (Видалити) діалогового вікна DateTimeCollectionEditor (Редактор списку дат), що відкривається натисненням кнопки з трьома крапками праворуч від відповідних властивостей, або за допомогою методів, вказаних в таблиці.

Властивість

Метод додавання

Метод видалення

AnnuallyBoldedDates

AddAnnuallyBoldedDate

RemoveAnnuallyBoldedDate

BoldedDates

AddBoldedDate

RemoveBoldedDate

MonthlyBoldedDates

AddMonthlyBoldedDate

RemoveMonthlyBoldedDate

Як параметр даних методів використовується об'єкт DateTime, що задає дату, що виділяється. Наприклад, за допомогою наступного коду можна виділити чий-небудь день народження в календарі:

Dim birthday As Date = New DateTime(2010, 4, 10)

Monthcalendarl.AddAnnuallyBoldedDate(birthday)

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

За допомогою властивостей MinDate і MaxDate вказується діапазон значень, що задаються елементом управління MonthCalendar. За замовчуванням ці властивості приймають мінімально і максимально можливі значення 01/01/1753 і 12/31/9998, відповідно.

Для задання максимального числа послідовно вибраних значень призначена властивість MaxSelectionCount. За умовчанням можна вибирати до семи що йдуть підряд днів.

Для визначення першої або останньої дати з діапазону вибраних дат використовуються властивості SelectionStart І SelectionEnd. Ці властивості повертають об'єкт типу DateTime. За допомогою перерахованих нижче властивостей цього об'єкту можна визначити число, місяць, рік вибраної з календаря дати, а також день тижня і день року:

  • Day - день місяця;

  • DayOfWeek - день тижня;

  • DayOfYear - день року;

  • Month - номер місяця;

  • Year - рік.

Події DateChanged і DateSelected виникають при зміні вибраної в елементі управління дати і при виділенні дати відповідно. Як аргумент обидві події отримують об'єкт DateRangeEventArgs, властивості End і Start якого можна в даній події використовувати замість властивостей SelectionStart і SelectionEnd елементу управління MonthCalendar.

На малюнку показана форма, що містить елемент управління MonthCalendar, що дозволяє вибрати одну дату, і поля, що відображають вибрану з календаря дату, номер місяця і рік. Для відображення параметрів додаємо в код програми наступну процедуру обробки вибору дати з календаря:

Private Sub MonthCalendar1_DateSelected(ByVal sender As Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateSelected

TextBox1.Text = e.Start.ToLongDateString

TextBox2.Text = e.Start.Day.ToString

TextBox3.Text = e.Start.Month.ToString

TextBox4.Text = e.Start.Year.ToString

End Sub

Для даного додатку замість процедури MonthCalendar1_DateSelected можна використати процедуру MonthCalendar1_DateChanged:

Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged

TextBox1.Text = MonthCalendar1.SelectionStart.ToLongDateString

TextBox2.Text = MonthCalendar1.SelectionStart.Day.ToString

TextBox3.Text = MonthCalendar1.SelectionStart.Month.ToString

TextBox4.Text = MonthCalendar1.SelectionStart.Year.ToString

End Sub

Елемент управління DateTimePicker

Елементом управління DateTimePicker (див мал.) є календарем, що розкривається, за допомогою якого можна вибрати дату. Для вибору значення в календарі спочатку необхідно його відкрити, натиснувши кнопку із стрілкою, розташовану з правого боку поля введення. Крім того, дату можна не тільки вибирати з календаря, що розкривається, але і вводити в текстове поле. Використання елементу управління DateTimePicker дозволяє заощадити місце у формі.

Зовнішній вигляд елементу управління

Для управління зовнішнім виглядом елементу управління DateTimePicker використовуються наступні властивості:

  • DropDownAllgn - положення календаря при його розкритті. Він може розташовуватися по правому або лівому краю текстового поля. За замовчуванням задано значення Left (По лівому краю);

  • Format - формат інформації, що відображається в текстовому полі. Може приймати наступні значення: Custom (Користувацький формат), Long (Довгий формат), Short (Короткий формат) і Time (Формат часу);

  • ShowCheckBox - при установці значення True зліва від дати в текстовому полі відображається прапорець. Якщо прапорець скинутий, то в текстове поле забороняється вводити дату і текст цього поля відображається сірим кольором. Якщо прапорець встановлений, дату можна змінювати. За умовчанням властивість приймає значення False;

  • ShowUpDown - при установці значення True замість кнопки із стрілкою вниз, що розкриває календар, з'являються дві кнопки з направленими в протилежні сторони стрілками, що дозволяють змінювати дату без використання календаря. За умовчанням встановлено значення False.

Властивість CustomFormat дозволяє за допомогою вказаних в таблиці символів задати власний формат представлення дати.

Символ

Опис

d, dd

Визначає, в якому форматі відображатиметься день місяця. У першому випадку відображатимуться одна або дві цифри, в другому - завжди дві. Наприклад, число 1 в першому випадку відображатиметься як 1, а в другому - як 01

ddd, dddd

Дозволяє відображати назву дня тижня або трьома символами, або цілком

M, MM

Задає відображення місяця числами. У першому випадку відображатимуться одна або дві цифри, в другому - завжди дві

МММ, MMMM

Дозволяє відображати назву місяця трьома символами або цілком

У, УУ, УУУУ

Задає число цифр року, що відображаються

Наприклад, якщо властивості CustomFormat присвоїти значення d ММММ уууу року – dddd, а для властивості Format задати значення Custom, дата матиме наступний формат:

6 вересня 2010 року – понеділок

Перераховані в таблиці (див. нижче) властивості дозволяють змінити використовувані за замовчуванням кольори розділів календаря.

Властивість

Опис

CalendarForeColor

Задає колір днів місяця і лінії, розташованої під днями тижня

CalendarMonthBackground

Задає колір фону області, на якій розташовані дні місяця

CalendarTitleBackColor

Задає колір області заголовка календаря, в якій розташована назва місяця, а також колір днів тижня

CalendarTitleForeColor

Задає колір назви місяця і року

CalendarTrailingForeColor

Задає колір днів не поточного місяця, якщо вони відображаються в календарі

Отримувані значення

Для набуття значення, які отримує елемент управління DateTimePicker, використовуються властивості Text і Value.

Властивість Text повертає рядок, вказаний в текстовому полі елементу управління DateTimePicker.

Властивість Value представляє собою об’єкт DateTime. Якщо дата і час не були змінені, то ця властивість приймає значення поточної дати і поточного часу.

Оскільки властивістю Value представляє собою об’єкт DateTime, то за допомогою відповідних властивостей і методів цього об'єкту можна вивести окремо час, рік, місяць, число і так далі Таким чином, за допомогою методу ToLongDateString властивість Value може прийняти таке ж, як у властивості Text, значення.