Иллюстрированный самоучитель по Visual Basic .NET

Диалоговые формы и диалоговые окна. 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 приводит к автоматическому закрытию формы, на которой эта кнопка находится).

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.