Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 201

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 195 196 197 198 199 200 < 201 > 202 203 204 205 206 207 .. 320 >> Следующая

Hear will be sent on 4 /2гЗД0ГЛ
t..4«...-/. 2001
Sun Mon ! Wed j Fri Sat
p зі 1 2 3 4 5 6 :Я
( 7 8 Э 10 <E) 12 13 1
[4- 14 1 5 1 6 17 18 13 20 J
_ 21 22 23 24 «8» 26 27
28 29 30 31 1 2
4 5 6 7 S 3 10 | <^> Today: 1/11«00I
Confirm Order
Рис. 10.18. Элемент управления MonthCalendar на форме
Несмотря на множество возможностей, работать с MonthCalendar очень проста. По умолчанию всегда выделяется (и подсветкой, и обводкой) текущая дата. Конечно же, пользователь может выбрать другую дату — в этом и есть смысл графического интерфейсаМопШСаІепааг.Чтобьшолучитьдату, выбранную пользователем, следует произвести обновление в обработчике события CIi ск кнопки btnGrder:
protected void btriOrder_C 1 ick (object sender, System. EventArgs e)
{
Il Создаем переменную для хранения информации string orderlnfo = "":
Ж
498 Глава 10 • Элементы управления
// Получаем выбранную пользователем дату поставки
DateTime d = monthCalendar.SelectionStart:
string datestr = d.Month + " / " + d.Day + " / " + d.Year;
orderInfO += "Car will be sent: + dateStr;
I
Можно получить дату, выбранную пользователем в MonthCalendar, при помощи свойства Selecti onStart. Это свойство возвращает ссылку на объект DateTime, которую мы храним в специальной переменной (d). При помощи набора свойств типа DateTime мы можем извлечь всю необходимую информацию в нужном нам формате (к слову, мы можем получить не только дату, но и время, но это нам пока не
нужно).
В нашем приложении мы разрешили пользователю выбирать только одну дату (то есть только одиндень) поставки автомобиля. Элемент управления MonthCalendar может быть использован и для выбора пользователем диапазона дат (например, автомобиль должен быть поставлен в период с такого-то числа по такое-то). Пользователю для выбора нескольких значений достаточно провести указателем при нажатой клавише мыши сразу по нескольким значениям (рис. 10.19).
,И 1.3!-Configurator
¦ 1?I х|
Radio
С Extra Fiooi Mats Ваіез Person
[Клігі 'Baby' Johnson ^|
г-Ейглііи Colon Thanks !01 visiting the ynjp . Г Green I-YeSc« P Pink
Make:
3 CD Player
? Cassette Player
Rear Speakers
Я Ultra Base Thumper
41
Caravan
Ford
Grand Am
Г Red
Order titols:
Sales Person- Xsm Beby' Johnson Make: BMV
Why cbyou wanta PINK exterior?
Radio Item: Front Speakers !Radio Item: CD Player Radio Item: Rear Speakers Radio Item: Ultra Base Thumper
Car sent and
3/24/2001
Delivery Dale:
March. 2001 D
Sun Wed Thu Fri Sat
25 26 27 2B 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
19 3r) 21 22 1Q
25 26 27 28 29 30 31
1 2 3 4 5 7
:.tT3 і ay; 1/11 /2001
Conlirm Order
Рис. 10.19. Выбор нескольких дат в элементе управления MonthCalendar
Получение информации о выбранном диапазоне дат также не сложно. Для этого можно использовать свойства и
Еще немного о типе Date-Time 499
protected void btnCrder_ClIcK (object sender. Syst«.EventArgs e)
I
Il Создаем переменную для хранения информации string orderlnfo = "";
Il Получаем диапазон дат. между которыми будет произведена поставка DateTime startD = monthCalendar.SelectlonStart; DateTime endo = monthCa"lendar,Selectior\End;
string dateStartStr = startD.Month + " / " + startO.Day + " / " + startD.Year; string dateEndStr = endu.Month + "/"¦»- endD.Day + " / " + endo.Year;
Il Для типа DateTime предусмотрено использование перегруженных операторов
if (dateStartStr !- dateEndStr)
{
orderlnfo +- "Car will be sent between " + dateStartStr + ".and\n" +
dateEndStr-
}
// To есть выбрано одно число
orderlnfo += "Car will be sent on " + dateStartStr:
Еще немного о типе DateTime
В нашем примере мы извлекли выбранный пользователем диапазон дат в MonthCa-lendar при помощи свойств SelectionStartw Select!опЕМ.
// Получаем два объекта DateTime
DateTime startD = monthCalendar.SelectlonStart;
DateTime endD - monthCalendar.SelectionEnd;
Затем при помощи свойств Month, Day и Year мы извлекли из объектов DateTime нужную нам информацию и сформировали текстовые строки. Это вполне допустимый подход (в том, что он работает, мы убедились на примере), но не самый удобный. Дело в том, что дату в необходимом текстовом формате проще получить из DateTime при помощи специальных «форматирующих* свойств самих объектов DateTime. Набор таких свойств (и некоторые методы) представлен в табл. 10.15.
Таблица 10.15. Члены класса DateTime
Член
Назначение
Date
Day
Month
Year
DayOfWeek
DayOfYear
Hour Minute Second Millisecond
Позволяет получить информацию о дате (дата всегда отсчитывэется от полуночи)
Позволяют получить соответственно день, месяц и число из текущего объекта DateTime
Возвращает день недели для объекта DateTime
Возвращает номер дня в году для объекта DateTime
Возвращают информацию о часе, минутах, секундах и миллисекундах
для объекта DateTime
продолжение г'
500 Глава 10 * Элементы управления
Таблица 10.15 {продолжение)
Член Назначение
MaxValue MinValue Возвращают минимальное и максимальное значения для DateTime
Предыдущая << 1 .. 195 196 197 198 199 200 < 201 > 202 203 204 205 206 207 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100