Диалоговое окно настройки шрифта
Типичное диалоговое окно настройки шрифта показано на Рис. 20.5.
Рис. 20.5
Такое или похожее окно мы видим во многих приложениях Windows, например, в Word. Такое же окно, но без настройки цвета, мы видим в VS при ручной настройке шрифта элементов управления в окне свойств (см. Рис. 3.5 в 3.2.2).
Настраиваем шрифт текстового поля. Создадим проект, в котором предоставим пользователю возможность, редактируя текст в текстовом поле, выбирать при помощи такого диалогового окна шрифт текста в текстовом поле.
Создайте проект. Разместите в нем текстовое поле, кнопку и элемент управления FontDialog. Вот программа:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FontDialog1.ShowColor = True 'Предоставить возможность выбирать цвет шрифта
FontDialog1.ShowDialog() 'Показать диалоговое окно настройки шрифта
'Присвоить шрифту текстового поля значение шрифта, выбранного в диалоговом окне:
TextBox1.Font = FontDialog1.Font
'Присвоить цвету шрифта текстового поля значение цвета шрифта, выбранного в диалоговом окне:
TextBox1.ForeColor = FontDialog1.Color
End Sub
Пояснения: Оператор
FontDialog1.ShowColor
= True 'Предоставить возможность выбирать цвет шрифта
приказывает отображать в диалоговом окне настройки шрифта раскрывающийся список для настройки цвета.
На операторе
FontDialog1.ShowDialog() 'Показать диалоговое окно настройки шрифта
появляется диалоговое окно настройки шрифта, программа останавливается и ждет. Мы настраиваем шрифт и нажимаем на кнопку OK диалогового окна. После нажатия окно пропадает, настройки (кроме цвета) запоминаются в свойстве Font объекта FontDialog1, цвет запоминается в свойстве Color объекта FontDialog1 и программа продолжает работу.
Действие двух других операторов ясно из комментариев.
Настраиваем шрифт графического объекта. Дополним нашу задачу требованием написать что-нибудь выбранным шрифтом на форме. Добавим в проект пару кнопок. Вот программа:
'Выбираем шрифт в диалоговом окне:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FontDialog1.ShowColor = True
FontDialog1.ShowDialog()
End Sub
'Применяем выбранный шрифт к текстовому полю:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.Font = FontDialog1.Font
TextBox1.ForeColor = FontDialog1.Color
End Sub
'Пишем выбранным шрифтом на форме:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'Создать шрифт, равный шрифту, выбранному в диалоговом окне:
Dim Шрифт As Font = FontDialog1.Font
'Создать кисть цвета, выбранного в диалоговом окне:
Dim Кисть As New SolidBrush(FontDialog1.Color)
Dim Граф As Graphics = Me.CreateGraphics
Граф.DrawString("Всегда!", Шрифт, Кисть, 0, 0) 'Написать выбранным шрифтом текст
End Sub
Пояснения: Здесь мы применяем один объект FontDialog1 как для текстового поля, так и для формы. Кто забыл, как создаются шрифты, перечитайте 12.2.3.