Если на форме размещено несколько элементов управления, то пользователи обычно ожидают, что между ними можно будет перемещаться с помощью клавиши Tab. Часто бывает необходимо после размещения элементов управления настроить порядок перехода между ними. Для этого используются два свойства (унаследованные от базового класса Control и поэтому общие для всех элементов управления): TabStop и Tablndex. Для свойства TabStop используются только два значения: true и false. Если для TabStop установлено значение true, то к этому элементу управления можно будет добраться с помощью клавиши Tab. Если же установлено значение false, то участвовать в переходах по Tab этот элемент управления не будет. Если элемент управления TabStop имеет значение true, то очередность перехода можно настроить с помощью свойства Tablndex:
В Visual Studio.NET предусмотрено средство, при помощи которого можно быстро настроить порядок перехода для элементов управления на форме. Это средство называется Tab Order Wizard и оно доступно из меню View (View > Tab Order). Чтобы изменить значения TabIndex для каждого элемента управления, достаточно просто щелкать мышью на элементах управления в выбранном нами порядке перехода. Для элементов управления, помещенных в группирующую рамку, Tab Order Wizard создает отдельную последовательность перехода.
|
|
Элемент управления MonthCalendar
В пространстве имен System.Windows.Forms предусмотрен элемент управления, при помощи которого пользователь может выбрать дату или диапазон дат, используя дружественный и удобный интерфейс. Это элемент управления MonthCalendar.
Наиболее важные свойства MonthCalendar представлены в табл. 7.11.
Таблица 7.11. Свойства MonthCalendar | |
Свойство | Назначение |
BoldedDates | Массив объектов DateTime, выделенных подсветкой |
CalendarDimensions | Определяет количество выводимых строк и столбцов |
FirstDayOfWeek | Определяет, с какого дня будет начинаться неделя в MonthCalendar |
MaxDate | Самая поздняя дата, которую разрешается выбрать пользователю (по умолчанию ограничений нет) |
MaxSelectionCount | Максимальное количество дат, которое одновременно может выбрать пользователь |
MinDate | Самая ранняя дата, которую разрешается выбрать пользователю (по умолчанию ограничений нет) |
MonthlyBoldedDates | Массив выделенных подсветкой объектов DateTime для месяца |
SelectionRange | Диапазон выделенных объектов |
SelectionEnd | Самая поздняя дата в диапазоне выделенных объектов |
SelectionStart | Самая ранняя дата в диапазоне выделенных объектов |
ShowToday | Определяет, будет ли MonthCalendar выводить информацию о текущей дате |
ShowTodayCircle | Определяет, будет ли MonthCalendar выводить информацию о текущей дате в нижней части и выделять ее в календаре обводкой |
ShowWeekNumbers | Определяет, будет ли MonthCalendar отображать номера недель справа от каждой строки |
TodayDate | Дата, которая будет считаться MonthCalendar сегодняшней. По умолчанию TodayDate - это системная дата на момент создания объекта MonthCalendar |
TodayDateSet | Определяет, можно ли пользователю по своему усмотрению выбирать сегодняшнюю дату. Если для этого свойства установлено значение true, пользователь может выбрать в качестве сегодняшней (TodayDate) любое число |
|
|
По умолчанию всегда выделяется (и подсветкой, и обводкой) текущая дата. Пользователь может выбрать другую дату - в этом и есть смысл графического интерфейса MonthCalendar.
Можно получить дату, выбранную пользователем в MonthCalendar, при помощи свойства SelectionStart. Это свойство возвращает ссылку на объект DateTime, которая хранится в специальной переменной (d) При помощи набора свойств типа DateTime можно извлечь всю необходимую информацию в нужном нам формате.
При помощи свойств Month, Day и Year можно извлечь из объектов DateTime нужную информацию и сформировали текстовые строки. Это вполне допустимый подход. Дело в том, что дату в необходимом текстовом формате проще получить из DateTime при помощи специальных "форматирующих" свойств самих объектов DateTime. Набор таких свойств (и некоторые методы) представлен в таблице 7.12.
Таблица 7.12. Члены класса DateTime | |
Член | Назначение |
Date | Позволяет получить информацию о дате (дата всегда отсчитывается от полуночи) |
Day, Month, Year | Позволяют получить соответственно день, месяц и число из текущего объекта DateTime |
DayOfWeek | Возвращает день недели для объекта DateTime |
DayOfYear | Возвращает номер дня в году для объекта DateTime |
Hour, Minute, Second, Millisecond | Возвращают информацию о часе, минутах, секундах и миллисекундах для объекта DateTime |
MaxValue, MinValue | Возвращают минимальное и максимальное значения для DateTime |
Now, Today | Эти два статических свойства типа DateTime позволяют получить информацию о текущей дате и времени (Now) или только о текущей дате (Today) |
Ticks | Позволяет получить счетчик "тиков" (с интервалом в 100 наносекунд) для объекта DateTime |
ToLongDateString(), ToLongTimeString(), ToShortDateString(), ToShortTimeString() | Преобразуют текущее значение объекта DateTime в разные виды текстового представления |
При помощи вышеперечисленных членов можно значительно упростить вывод текстовой информации о дате.
Элемент управления Panel
Назначение элемента управления Panel (панель) - с его помощью можно объединить прочие элементы управления на форме. Panel происходит от базового класса ScrollableControl и поддерживает полосы прокрутки.
Элементы управления Panel обычно используются для экономии пространства на форме. Например, если элементы управления, которые планируем разместить на форме, на ней не умещаются, то можно поместить их внутрь Panel и установить для свойства AutoScrol1 объекта Panel значение true. В результате пользователь получит возможность доступа к "не вмещающимся" элементам управления с помощью полос прокрутки.