На этом шаге мы рассмотрим назначение, основные свойства и особенности использования этого компонента.
Компонент FontDialog (рисунок 1) является стандартным диалоговым окном и предназначен для выбора шрифта.
Рис.1. Компонент FontDialog
Основные свойства этого компонента приведены в таблице 1.
Свойство | Описание |
---|---|
Color | Получает или задает цвет выбранного шрифта |
FixedPitchOnly | Получает или задает значение, показывающее, предоставляет ли диалоговое окно возможность выбора только моноширинных шрифтов (False - нет) |
Font | Получает или задает выбранный шрифт |
MaxSize | Получает или задает наибольший размер в пунктах, который может выбрать пользователь |
MinSize | Получает или задает наименьший размер в пунктах, который может выбрать пользователь |
ShowApply | Получает или задает значение, показывающее, содержит ли диалоговое окно кнопку Применить (False - кнопка не отображается) |
ShowColor | Получает или задает значение, показывающее, отображает ли диалоговое окно выбор цветов (False - окно не отображается) |
ShowEffects | Получает или задает значение, показывающее, содержит ли диалоговое окно элементы управления, позволяющие пользователю задавать параметры зачеркивания, подчеркивания и цвета текста (False - окно не отображается) |
ShowHelp | Получает или задает значение, показывающее, отображает ли диалоговое окно кнопку Справка (False - кнопка не отображается) |
Приведем текст обработчика события выбора пункта меню Параметры | Шрифт... приложения из 48 шага:
// выбор в меню Параметры команды Шрифт private: System::Void toolStripMenuItem7_Click(System::Object^ sender, System::EventArgs^ e) { fontDialog1->Font = textBox1->Font; if (fontDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) { textBox1->Font = fontDialog1->Font; } }
Прокомментируем приведенный фрагмент.
Сначала выполняется установка текущего шрифта компонента textBox1 в компоненте fontDialog1. Это делается для того, чтобы пользователь, при открытии окна выбора шрифта, видел установленный шрифт.
Метод ShowDialog() активизирует диалоговое окно выбора шрифта (рисунок 2).
Рис.2. Окно выбора шрифта
Пользователь может закрыть это окно, нажав на кнопку OK. В этом случае проверяемое условие в условной конствукции станет истинным, и выполнится присваивание, помещенное в фигурные скобки, после чего выбранный пользователем шрифт будет использоваться в компоненте textBox1. В противном случае (если диалоговое окно выбора шрифта было закрыто другим способом) проверяемое условие будет ложным, и свойство Font компонента textBox1 не изменит сове значение.
На рисунке 2 приведено окно выбора шрифта с полем для выбора цвета. Обратите внимание, что автоматически выбранный цвет установлен не будет: нужно его передать соответствующему свойству компонента.
Для нашего случая обработчик события будет выглядеть так:
// выбор в меню Параметры команды Шрифт private: System::Void toolStripMenuItem7_Click(System::Object^ sender, System::EventArgs^ e) { fontDialog1->Font = textBox1->Font; if (fontDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) { textBox1->Font = fontDialog1->Font; textBox1->ForeColor = fontDialog1->Color; } }
В заключение отметим, что важную роль в обработке щелчка на кнопке Применить диалогового окна выбора шрифтов играет событие Apply компонента FontDialog. Оно вызывается тогда, когда пользователь щелкнет по этой кнопке. Окно выбора шрифтов не закроется, но, тем не менее заланные параметры вступят в силу. Напомним, что для отображения этой кнопки, должно быть установлено в True свойство ShowApply.
Рис.3. Кпопка Применить и результаты ее нажатия
Для получения такого результата достаточно написать обработчик события Apply(), в который поместить те же строки, что и в предыдущем случае:
textBox1->Font = fontDialog1->Font; textBox1->ForeColor = fontDialog1->Color;
На следующем шаге мы рассмотрим компонент PrintDialog.