Диалоговые окна открытия и сохранения файла
До сих пор я знакомил вас с довольно простыми элементами управления, такими как кнопки, текстовые поля и т.п. Достаточно ли таких простых элементов, чтобы запрограммировать любые приложения Windows? В принципе, да. Возьмем, например, диалоговое окно сохранения файла. Оно примерно одинаково в большинстве приложений Windows (см. Рис. 20.1).
Рис. 20.1
Вы видите, что оно состоит из кнопок, меток, раскрывающихся списков и других простых элементов, значительную часть которых мы проходили. Все эти элементы могли бы быть собраны нами на форме с заголовком Save File As. Таким образом, если мы захотим организовать сохранение файла, мы должны будем создать в проекте еще одну форму, которая и будет диалоговым окном (как создавать в проекте дополнительные формы, я расскажу в 21.2). Затем мы поместим на эту форму нужные элементы управления и запрограммируем работу каждого из них. В общем, работа довольно большая, но выполнимая.
Разработчики библиотеки классов .NET Framework постарались облегчить жизнь программистам и создали элемент управления SaveFileDialog, который уже имеет вид нужного диалогового окна. Простые элементы управления внутри диалогового окна уже запрограммированы надлежащим образом. Все, что остается программисту – это написать немного кода для настройки окна в целом.
Все, сказанное здесь про SaveFileDialog, относится и к окну OpenFileDialog, применяемому для открытия файлов.
Создайте проект. Разместите под формой элементы управления SaveFileDialog и OpenFileDialog. В режиме работы диалоговые окна возникают при выполнении метода ShowDialog:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SaveFileDialog1.ShowDialog()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
OpenFileDialog1.ShowDialog()
End Sub
Проверьте работу приведенного фрагмента. Вы увидите, что путешествие по папкам диалоговых окон проходит совершенно «по-всамделишному», однако при нажатии кнопок Open и Save никакого открытия и сохранения файлов не происходит. Здесь ситуация аналогичная меню: выбор пункта меню приводит к каким-либо действиям только тогда, когда эти действия вами запрограммированы.
Реальное открытие и сохранение файлов изучим в следующем подразделе на примере создания простейшего текстового редактора.
Несмотря на то, что метод ShowDialog является функцией (Function), а не процедурой (Sub), в приведенном коде он встречается не справа от знака равенства и не в составе выражений, как пристало функциям, а как самостоятельный оператор. VB допускает такое употребление для многих функций. А почему бы и нет? Ведь иногда нас интересует не значение, которое функция возвращает, а ее побочный эффект, в данном случае диалоговое окно.