string.dateStartStr = string.Format("{0}.{1}.{2}", stаrtD.Day, startD.Month, startD.Year);
string dabeEndStr = string.Format("{0}.{1}.{2}", endD.Daу, endD.Month, endD.Year);
// Тип DateTime поддерживает перегруженные операции!
if (dateStartStr != dateEndStr) {
orderInfo += "Машина должна быть доставлена\n" + "c " + dateStartStr + "по " + dateEndStr;
} else // Когда выбрано одно значение даты.
orderInfo += "Машина должна быть доставлена\n" + dateStartStr;
…
}
Замечание. Windows Forms содержит элемент управления DateTimePicker, который позволяет предложить MonthCalendar в раскрывающемся элементе управления DropDown.
Элемент ToolTip
В связи с рассматриваемой формой CarConfig мы должны продемонстрировать еще одну, заключительную, возможность. Многие современные интерфейсы пользователя предлагают так называемые
Для примера добавьте такую подсказку для календаря CarConfig. Сначала перетащите новый элемент управления ToolTip из панели инструментов в окно проектирования формы и переименуйте этот элемент управления в calendarTip. Внешний вид элемента ToolTip можно задать, используя окно свойств, например.
private void InitializeComponent {
…
// calendarTip
//
this.calendarTip.isBalloon = true;
this.calendarTip.ShowAlways = true;
this.calendarTip.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info;
…
}
Чтобы связать ToolTip с данным элементом управления, выберите элемент управления, в котором должен активизироваться ToolTip, и соответствующим образом установите свойство ToolTip on (рис. 21.15).
Рис. 21.15. Ассоциация ToolTip с элементом управления
Теперь наш проект CarConfig можно считать завершенным. На рис. 21.16 созданная подсказка показана в действии.
Рис. 21.16. Элемент ToolTip в действии
Исходный код. Проект CarConfig размещен в подкаталоге, соответствующем главе 21.
Элемент TabControl
Чтобы проиллюстрировать остальные "экзотические" элементы управления, давайте построим новую форму, поддерживающую TabControl (элемент управления вкладками). Вы, возможно, знаете, что TabControl позволяет селективно скрывать или показывать страницы связанного содержимого с помощью щелчка на соответствующих "закладках". Сначала создайте новое приложение Windows Forms с именем ExoticControls и поменяйте имя исходной формы на MainWindow.
Затем добавьте TabControl в окно проектирования формы и, используя окно свойств, с помощью коллекции Tab Pages откройте редактор страниц (в соответствующей строке окна свойств щелкните на кнопке с многоточием). Появится диалоговое окно конфигурации инструмента. Добавьте в нем шесть страниц и установите свойства Text и Name страниц в соответствии с тем, как показано на рис. 21.17.
Рис. 21.17. Многостраничный элемент управления TabControl
При создании элемента управления TabControl следует учитывать то, что каждая страница представляется объектом TabPage, содержащимся во внутренней коллекции страниц TabControl. Сконфигурированный объект TabControl (подобно любому другому элементу графического интерфейса в форме) добавляется в коллекцию Controls формы. Рассмотрите соответствующий фрагмент метода InitializeComponent.
private void InitializeComponent {
…
// tabControlExoticControls
//
this.tabControlExoticControls.Controls.Add(this.pageTrackBars);
this.tabControlExoticControls.Controls.Add(this.pagePanels);
this.tabControlExoticControls.Controls.Add(this.pageUpDown);
this.tabControlExoticControls.Controls.Add(this.pageErrorProvider);
this.tabControlExpticControls.Controls.Add(this.pageTreeView);
this.tabControlExoticControls.Controls.Add(this.pageWebBrowser);