Опубликован: 31.08.2006 | Доступ: свободный | Студентов: 3974 / 230 | Оценка: 4.14 / 3.89 | Длительность: 39:16:00
ISBN: 978-5-9570-0021-3
Лекция 5:

Работа с меню и диалоговыми окнами

Изменение имен объектов для элементов меню Файл

Как уже упоминалось в этой лекции, имена объектов формы, в том числе и команд меню, можно изменить, изменив для каждого из них свойство Name. Свойство Name не изменяет внешнего вида объекта во время выполнения программы, то, что объект показывает пользователю, зато оно используется для обращения к объектам в тексте программы.

Важное замечание. Имя любого объекта (его свойство Name) в программе на Visual Basic должно состоять из латинских букв или цифр. Замена имени на русское или использование букв русского алфавита недопустимо, так как может вызвать ошибки в программе.

Давайте изменим имена объектов из меню Файл и сделаем их такими, чтобы их было легче найти в тексте программы.

Изменение имен объектов
  1. Выберите на форме меню Файл и в окне Properties (Свойства) измените его свойство Name на mnuFile. (Свойство Name находится в категории Design (Проектирование) и заключено в круглые скобки).

    Обычно программисты начинают имена объектов с трехбуквенной приставки, которая определяет, к какому элементу управления или библиотеке относится данный объект или от какого объекта он является производным. Здесь мы использовали приставку mnu, чтобы указать, что этот объект является элементом меню, а слово File напоминает, что это меню Файл из строки меню. Для идентификации различных типов объектов используются и другие трехбуквенные расширения.

  2. Выберите элемент меню Открыть: и измените его свойство Name на mnuOpenItem.
  3. Выберите элемент меню Закрыть и измените его свойство Name на mnuCloseItem.
  4. Выберите элемент меню Выход и измените его свойство Name на mnuExitItem.
  5. Чтобы сохранить сделанные изменения, нажмите кнопку Save All (Сохранить все) на стандартной панели инструментов.

Такие имена объектов меню сделают вашу программу более понятной. Другие объекты в проекте (надпись, область показа изображения, другие пункты меню) тоже можно переименовать. Как мы уже писали, это делать необязательно.

Отключение команды меню

В обычном приложении для Windows не все команды меню доступны одновременно. Например, в обычном меню Правка команда Вставить доступна только тогда, когда данные скопированы в буфер обмена. Элемент меню можно отключить, задав для свойства Enabled этого объекта меню значение False. Когда команда отключена, в строке меню она окрашена в серый цвет.

В следующем упражнении мы отключим команду Закрыть в меню Файл. (Команда Закрыть может использоваться только после того, как файл уже был открыт в программе). Далее в этой лекции мы добавим в процедуру обработки события команды Открыть оператор, который в нужный момент включает команду Закрыть.

Отключение команды Закрыть
  1. В меню Файл программы Menu выберите команду Закрыть.
  2. В окне Properties (Свойства) для свойства Enabled объекта mnuCloseItem выберите значение False.

Теперь, чтобы продемонстрировать, как работает диалоговое окно выбора цвета, необходимо добавить в меню Дата команду Цвет текста. Диалоговое окно выбора цвета c помощью свойства Color возвращает в программу вновь выбранный цвет. Это свойство будет использоваться для изменения цвета текста в объекте Label1.

Добавление команды Цвет текста в меню Дата
  1. Выберите меню Дата, а затем щелкните на нижней ячейке Прототип для текста.
  2. Чтобы добавить в это меню команду Цвет текста с клавишей "Ц" в качестве клавиши доступа, введите &Цвет текста \dots . Команда будет добавлена в меню Дата. Эта команда заканчивается многоточием, которое указывает, что при ее выборе откроется диалоговое окно.
  3. В окне Properties (Свойства) измените свойство Name команды Цвет текста на значение mnuTextColorItem.

Процедуры обработки событий, которые управляют общими диалоговыми окнами

Чтобы показать в программе диалоговое окно, в процедуре обработки события для соответствующей команды меню нужно ввести оператор, состоящий из имени диалогового окна и метода ShowDialog. Если это необходимо, то перед открытием диалогового окна нужно запрограммировать свойства этого окна. Наконец, в тексте программы должен присутствовать код, который после закрытия окна выполнит те или иные операции в зависимости от выбора или действий, которые пользователь выполнит в этом диалоговом окне.

В следующем упражнении мы добавим в программу код для процедуры обработки события mnuOpenItem_Click, которое выполняется при выборе команды Открыть. Чтобы определить тип файлов, отображаемых в этом общем диалоговом окне (в данном примере - точечные изображения), мы определим свойство Filter объекта OpenFileDialog1. Затем мы используем метод ShowDialog, чтобы открыть на экране диалоговое окно. После того, как пользователь выберет файл и закроет диалоговое окно, файл будет показан в области вывода изображений. Для этого в свойство Image объекта вывода изображений будет записано имя файла, выбранного пользователем. Наконец, мы активируем команду Закрыть, чтобы пользователь мог закрыть картинку.

Редактирование процедуры обработки событий команды Открыть

  1. В меню Файл нашей формы дважды щелкните мышью на команде Открыть. В редакторе кода появится процедура обработки событий mnuOpenItem_Click.
  2. Между операторами Private Sub и End Sub добавьте следующие ниже операторы. Убедитесь, что вы набрали каждую строку в точности так, как они здесь напечатаны, а после набора последней строки нажмите на клавиатуре стрелку вниз.

    OpenFileDialog1.Filter = "Точечный рисунок (*.bmp)|*.bmp"
    If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
    PictureBox1.Image = System.Drawing.Image.FromFile(OpenFileDialog1.FileName)
    mnuCloseItem.Enabled = True
    End If

    Текст программы должен выглядеть так, как показано на этой иллюстрации.

    Первые три оператора в этой процедуре обработки события ссылаются на три свойства объекта диалога открытия файла. В первом операторе свойство Filter используется для определения списка допустимых файлов. В нашем случае этот список содержит только один элемент: *.bmp. Это достаточно важно для диалогового окна Открыть, так как объект показа изображения поддерживает шесть типов файлов: точечные изображения (файлы .bmp), метафайлы Windows (файлы .emf и .wmf), значки (файлы .ico), формат Joint Photographic Experts Group (файлы .jpg и .jpeg), формат Portable Network Graphics (файлы .png) и формат Graphics Interchange Format (файлы .gif). Попытка показать в объекте изображения файл .txt приведет к возникновению ошибки в момент выполнения. Чтобы добавить в список Filter дополнительные элементы, между ними нужно ввести символ (|). Например, при следующем значении фильтра

    OpenFileDialog1.Filter = "Точечный рисунок (*.bmp)|*.bmp|Метафайл Windows (*.wmf)|*.wmf"

    в диалоговом окне Открыть будут показаны как файлы с точечными изображениями, так и метафайлы Windows.

    Второй оператор в процедуре обработки события показывает в программе диалоговое окно Открыть. Метод ShowDialog - это новый метод Visual Basic .NET, он похож на метод Show из Visual Basic 6, но может использоваться для любой формы Windows Forms. Метод ShowDialog возвращает результат с именем DialogResult, который указывает, какую кнопку диалогового окна нажал пользователь. Чтобы определить, щелкнул ли пользователь на кнопке Открыть, используется оператор If...Then, который проверяет, равно ли возвращенное значение DialogResult.OK. Если оно равно этому значению, то в свойстве FileName диалога открытия должен храниться путь к существующему файлу на диске.

    В третьем операторе используется имя файла, которое было выбрано в диалоговом окне. Когда пользователь выбирает диск, папку и имя файла, а затем нажимает кнопку Открыть, полный путь передается в программу через свойство OpenFileDialog1.FileName. Затем используется метод System.Drawing.Image.FromFile, который копирует указанное точечное изображение в объект показа изображений. (Этот оператор разбит на две строки при помощи символа продолжения строки, так как он получился очень длинным.)

    В четвертом операторе активируется команда Закрыть из меню Файл. Теперь, когда файл в программе был открыт, команда Закрыть должна быть доступна, чтобы пользователи могли закрыть этот файл.

    Теперь введите код программы для процедуры обработки события mnuCloseItem_Click, которая выполняется при выборе команды Закрыть из меню Файл.

Сайдахмад Зарипов
Сайдахмад Зарипов
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?