Диалоговые формы и диалоговые окна. ColorDialog. FontDialog. FileDialog. Создание диалоговых окон.
FontDialog
Диалоговое окно выбора шрифта (FontDialog) хорошо знакомо всем пользователям текстовых редакторов Windows. В свойстве Font объекта диалогового окна возвращается объект Font, обычно назначаемый свойству Font элемента или формы. В следующем примере предполагается, что на форме находится текстовое поле TextBoxl и кнопка Button1:
Private Sub Button1_Click_l(ByVal sender As System.Object. _ ByVal e As System.EventArgs) Handles Buttonl.Click Dim myDialog As New FontDialog() If myDialog.ShowDialog() = DialogResult.OK Then TextBoxl.Font myDialog.Font End If End Sub
(Обратите внимание, как однострочное текстовое поле автоматически подстраивается под размеры нового шрифта).
FileDialog
Абстрактный класс FileDialog является базовым для двух специализированных подклассов:
- OpenFileDialog;
- SaveFileDialog.
Рассмотрим использование этих диалоговых окон на простом примере. Элемент RichTextbox .NET, как и его аналоги из предыдущих версий VB, поддерживает методы LoadFilе и SaveFile для быстрого открытия и сохранения файлов. Чтобы пример стал более реалистичным, свойство Filter диалогового окна будет ограничивать вывод файлов .txt и .rtf (в следующем фрагменте эта строка выделяется жирным шрифтом). Также обратите внимание на то, как при вызове метода LoadFilе указывается текстовый формат файла (при загрузке файлов RTF второй параметр указывать не обязательно):
Private Sub mnuOpen_Click(ByVal sender As System.Object,_ ByVal e As System.EventArgs)Handles mnuOpen.Click Dim myDialog As New OpenFileDialog() myDialog.Filter = "text (*.txt),RTF (*.rtf)|*.txt:*rtf" If myDialog.ShowDialog =DialogResult.OK Then ' При загрузке текстовых файлов во втором параметре ' необходимо передавать признак типа файла. Dim Temp As String = myDialog.FileName.Tollpper If Temp.EndsWith("TXT") Then RichTextBoxl.LoadFi1e(myDialog.FileName, Ri chTextBoxStreamType.Plai nText) Else Ri chTextBoxl. LoadFiletmyDialog.File_Name. Ri ChTextBoxStreamType.RichText) End If End If End Sub
Создание диалоговых окон
Чтобы вывести собственное диалоговое окно, создайте форму, задайте ее свойствам ControlBox, MinimizeBox и MaximizeBox значение False, а свойству Modal – значение True. Форму следует выводить методом ShowDialog в режиме модального диалогового окна. Если при этом задать свойство TopMost равным True, диалоговое окно будет располагаться поверх всех окон на экране (и вам уже не придется использовать функцию API SetWindowPos).
Однако поведение стандартных кнопок несколько изменилось по сравнению с VB6. Свойства Default и Cancel не поддерживаются, поэтому соответствующие элементы-кнопки назначаются свойствам AcceptButton и CancelButton:
Me.AcceptButton = btnOK Me.Cancel Button = btnCancel
После вызова ShowDialog программа может узнать, какая кнопка была нажата на форме, при помощи свойства DialogResult кнопки или самой формы (нажатие кнопки с заданным свойством DialogResult приводит к автоматическому закрытию формы, на которой эта кнопка находится).