Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Календарь

Лекция 10. Таймер и время. Компоненты Timer, DateTimePicker, DateTime

 

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

В этом разделе мы будем показывать возможности элементов управления MonthCalendar и DateTimePicker на примере приложения DateTimeApp. Исходный вид главного окна этого приложения, в котором находится только один элемент управления MonthCalendar, мы показали на рис. 6-20.

Рис. 6-20. Календарь на один месяц

 

Создание календаря

Самый простой способ создать календарь — это переместить его значок MonthCalendar из панели Toolbox в окно проектируемой формы. При этом с исходный текст приложения будет добавлен следующий код:

private System.Windows.Forms.MonthCalendar monthCalendar1;

this.monthCalendar1 = new System.Windows.Forms.MonthCalendar();

//
// monthCalendar1
//
this.monthCalendar1.Location = new System.Drawing.Point(24, 16);
this.monthCalendar1.Name = "monthCalendar1";
this.monthCalendar1.TabIndex = 1;

Как видите, календарь создается с помощью конструктора на базе класса System.Windows.Forms.MonthCalendar.

 

Настройка свойств

Программный код инициализации, добавленный дизайнером форм, по умолчанию устанавливает расположение календаря Location, его имя Name, а также порядок сортировки TabIndex. Далее Вам нужно самостоятельно настроить свойства календаря для получения от него необходимой функциональности.

Прежде всего, расскажем о свойствах, определяющих внешний вид календаря.

Свойства CalendarDimensions.Width и CalendarDimensions.Height задают, соответственно, ширину и высоту календаря. По умолчанию значения этих свойств равны 1, в результате чего календарь отображает числа только одного месяца (рис. 6-20).

Задав значение свойства CalendarDimensions.Width равное 3, а свойства CalendarDimensions.Height — равное 2, можно создать календарь на 6 месяцев.

 

По умолчанию в календаре отмечена текущая дата, а в нижней части календаря присутствует строка Сегодня: ХХ.ХХ.ХХХХ. Однако если записать значение false в свойство ShowToday, эта строка не будет отображаться. Если при этом записать значение false в свойство ShowTodayCircle, текущая дата никак не будет отмечена в календаре.

Если записать в свойство TodayDateSelect значение true, программа сможет выбирать текущую дату, записывая ее в свойство TodayDate (по умолчанию свойство TodayDate содержит системную дату).

При необходимости можно показывать в календаре номера недель, записав значение true в свойство ShowWeekNumbers.

С помощью календаря пользователь может указать дату или диапазон дат, выделив этот диапазон левой клавишей мыши. Максимальный диапазон дат, который может выделить пользователь, задается свойством MaxSelectionCount, значение которого по умолчанию равно 7.

Если значение свойства MaxSelectionCount установить равным 1, то пользователь сможет выбрать только один день. Если же значение этого свойства увеличить до 365, можно будет выбрать максимальный интервал дат, равный 1 году.

Свойства SelectionStart и SelectionEnd содержат, соответственно, начальную и конечную дату из диапазона дат, выделенных пользователем. Кроме того, диапазон выделенных дат можно получить из свойства SelectionRange.

Если значение свойства MaxSelectionCount равно 1 и пользователь может выделить только один день, то дату, соответствующую этому дню, можно извлечь из свойства SelectionStart.

Что касается свойств SelectionStart и SelectionEnd, то в них хранится дата в виде объектов класса DateTime. В табл. 6-1 мы перечислили некоторые свойства этого класса.

 

Таблица 6-1. Свойства класса DateTime

Свойство Что содержит
Day Число
Mouhth Номер месяца
Year Год
Millisecond Миллисекунды
Second Секунды
Minute Минуты
Hour Часы
DayOfWeek Номер дня в неделе
DayOfYear Номер дня в году
Ticks Количество периодов системного таймера
TimeOfDay Время дня
Today Текущая дата
UtcNow Текущая локальная дата в терминах универсального координированного времени (coordinated universal time, UTC)

 

Cвойство SelectionStart позволяет извлечь из него отдельные компоненты даты:

public string UserBirthDay
{
get
{
DateTime dt = monthCalendar1.SelectionStart;
return dt.Day + "." + dt.Month + "." + dt.Year;
}
}

 

Здесь мы вначале получили из свойства monthCalendar1.SelectionStart дату, выделенную пользователем, и сохранили ее в переменной dt типа DateTime. Далее из отдельных компонентов даты (календарного числа dt.Day, номера месяца dt.Month и года dt.Year) была сформирована текстовая строка.

Аналогичным образом программа может обработать и содержимое свойства SelectionEnd.

Свойство SelectionRange содержит данные класса SelectionRange. Чтобы извлечь начальную и конечную дату, программа должна обратиться к свойствам SelectionRange.Start и SelectionRange.End, соответственно.

Дополните приложение DateTimeApp обработчиком события button1_Click, получающим управление по щелчку кнопки OK:

private void button1_Click(object sender, System.EventArgs e)
{
string s = "Выбран диапазон дат: ";
DateTime dtStart = monthCalendar1.SelectionRange.Start;
DateTime dtEnd = monthCalendar1.SelectionRange.End;

s += "(" + dtStart.Day + "." + dtStart.Month + "." + dtStart.Year + ") - (" + dtEnd.Day + "." + dtEnd.Month + "." + dtEnd.Year + ")";

MessageBox.Show(s);
}

Здесь мы извлекаем начальную и конечную дату, а затем отображаем на экране текстовую строку с диапазоном дат, выделенным пользователем в окне календаря (рис. 6-23).

Рис. 6-23. Отображение выделенного диапазона дат

 

<== предыдущая лекция | следующая лекция ==>
Тема 25. Третейские суды. Производство по делам об оспаривании решений третейских судов и о выдаче исполнительных листов на принудительное исполнение решений третейских судов | Элемент управления DateTimePicker
Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 454; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.