Visual Basic .NET для чайников - У. Вонг. Visual Basic .NET для чайников - У. Диалектикамосква СанктПетербург Киев
Скачать 7.1 Mb.
|
Глава Подменю, расширяемые меню и выпадающие меню 133 5. Щелкните на свойстве Visible (Видимый), которое относится к категории Misc (Разное). Рядом с названием свойства появится кнопка с направленной вниз стрелкой. 6. Щелкните на кнопке со стрелкой и выберите значение F a l s e . Теперь созданный вами пустой элемент меню не будет отображаться на экране. 7. Дважды щелкните на свойстве Name (Имя) категории Design и укажите но- вое имя для только что созданного элемента меню. Назовите элемент каким-нибудь запоминающимся именем, потому что вам еще придется его использовать при написании кодов BASIC для отображения новых строк в раскрывающемся меню. Итак, выполнив все перечисленные действия, вы создали в раскрывающемся меню ре- зервную пустую строку, однако чтобы заполнить эту строку текстом и отобразить ее на экра- не (т.е. для того чтобы меню стало действительно динамически расширяемым), нужно напи- сать коды Предположим, вы назвали созданную пустую строку именем Ниже приве- ден код BASIC, который выводит эту строку на экран и заполняет ее текстом. = True = "1 C:\My D o c u m e n t s \ F l a m e . t x t " 1. Первая строка говорит Visual Basic "Сделай команду меню, именуемую mnuFileOne, видимой, чтобы она смогла отображаться на экране"'. 2. Вторая строка дает Visual Basic другое указание: текст 1 в команде меню, Выполнение двух этих шагов создает у пользователей иллюзию, что раскрывающееся ме- ню динамически расширяется в процессе выполнения программы. Добавление новых элементов меню в процессе выполнения программы Недостаток рассмотренного выше способа создания динамически расширяемых меню за- ключается в том, что вы не всегда можете заранее сказать, сколько именно новых элементов нужно будет добавить. Поэтому, чтобы сделать программу более гибкой (правда, и более вы должны написать коды BASIC, предназначенные для добавления в меню по ме- ре необходимости новых элементов в процессе выполнения самой программы. Более подробно использование кодов BASIC будет рассмотрено в четвертой части этой книги. Поэтому вы можете сейчас лишь бегло просмотреть настоящий раздел и вернуться к нему позже, когда будете больше знать о работе кодов А теперь попробуем создать динамически расширяемое меню с использованием кодов 1. В окне формы создайте открывающееся меню и присвойте ему какое-нибудь запоминающееся имя, например, О том, как создаются раскрывающиеся меню, рассказано в главе 2. Откройте редактор кодов для этой формы. 3. Наберите ниже код. Часть Создание меню Код, который вы видите ниже, в Visual Basic называется методом. По су- ществу, метод представляет собой маленькую программу внутри большой про- граммы. Обычно методы создаются для решения каких-то несложных задач. Public Sub NewStuff As String) Dim As New NewStuff End Sub . Введите следующий код куда-нибудь в текст программы, чтобы привести в действие только что набранный метод, добавив тем самым в раскрываю- щееся меню новый элемент. AddMenuItem ("Мой новый элемент меню") Чтобы помочь вам понять, как работает приведенный здесь метод, ниже дано по- шаговое описание выполняемых им действий. Public Sub As String) Dim myMenuItemNew As New = End Sub 1. Первая строка сообщает Visual Basic "Этот называется AddMenuItem (ему можно дать любое понравившееся вам имя). Метод при- нимает строку ( S t r i n g ) и сохраняет ее как переменную 2. Вторая строка приказывает Visual Basic '"Создай переменную myMenuItemNew (ее можно назвать по-другому), которая будет представлять собой объект, именуемый 3. Третья строка говорит Visual Basic значение переменной свойству Text объекта, представляемого переменной 4. Четвертая строка дает указание Visual Basic "Добавь в раскрывающееся меню, именуемое mnuFileMenu, новый элемент, представляемый перемен- ной myMenuItemNew". 5. Наконец, пятая строка информирует Visual Basic "На этом список инст- рукций данного метода заканчивается". В приведенном выше примере курсивом выделены имена, которые не являются обязательными; вы можете присваивать таковые по своему усмотрению. Напри- мер, метод можно назвать не AddMenuItem (Добавление элемента меню), а, ска- жем, GrowMenu (Расширяемое меню). Не важно, какие именно имена вы присваи- ваете. Главное, чтобы вы их потом корректно использовали. Глава Подменю, расширяемые меню и выпадающие меню 135 Тест на проверку полученных вами знаний Объясните, зачем иногда нужно менять ко- 2. Для чего создаются подменю? манды в раскрывающихся меню. . а. Чтобы пользователи не расслаблялись и периодически задумывались, а все правильно они делают? б. Чтобы один и тот же интерфейс не дал пользователям, нужно через каждые пять минут изменять расположение манд в меню. в. Чтобы менять местами такие команды, как Undo (Отменить) и Redo (Повторить). г. Ничто не вечно, в том числе и порядок манд в раскрывающихся меню. Чтобы подальше спрятать от пользователей наиболее важные команды. Чтобы иметь возможность компактно отобра- жать команды, подобные дейст- вия, без необходимости создавать отдельные б. в. Большая разветвленная система меню вкуша- ет уважение к столь 'серьезной" программе, г. Подменю должно быть побольше, чтобы поль- зователи постоянно находили в них для себя новое и интересное. Создание меню Многие программы предоставляют пользователям доступ к командам, не только посред- ством раскрывающихся меню, но и через выпадающие меню, которые, согласно терминоло- гии Visual Basic называются также контекстными меню. Контекстное меню появляет- ся на экране каждый раз, когда пользователь щелкает где-либо правой кнопкой мыши. Есть два способа создания контекстных меню: посредством создания новых команд, которые будут отображаться в контекстном меню; путем копирования в контекстные меню уже существующих команд из раскры- вающихся меню. Создание команд для контекстных меню Для того чтобы создать для контекстного меню новую команду, вы должны выполнить следующие действия. 1. Откройте форму, для которой нужно создать контекстное меню. 2. В панели Toolbox дважды щелкните на кнопке инструмента (Контекстное меню). Кнопка ContextMenu относится к категории Windows Forms, но на экране она обычно не отображается, а чтобы ее увидеть, нужно нажать кнопку с направлен- ной вниз стрелкой и прокрутить вниз список инструментов. После того как вы дважды щелкнете на этой кнопке, Visual Basic отобразит значок ContextMenu в отдельном окне нижней части экрана, а в самой форме появится объект ContextMenu 12.3). 3. В окне формы щелкните на объекте ContextMenu. Прямо под объектом ContextMenu откроется поле 4. Щелкните в поле (Наберите здесь) и введите название которая должна отображаться в контекстном меню. 136 Часть Создание меню 5. Повторяйте шаг 4 до тех пор, пока не укажете названия всех команд, кото- рые должны быть доступны через это контекстное меню. После того как контекстное меню будет создано, вы в любой момент сможете его открыть для редактирования, щелкнув на значке ContextMenu в окне, расположен- ном в нижней части экрана. Visual Basic отобразит само меню в верхней части окна формы, и вы сможете добавлять, удалять или перемещать его элементы. Более подробную информацию о редактировании меню можно найти в главе - Microsoft Visual - " £Ие View guild Debug Eli Ready 12.3. Создание контекстного меню для формы вашей программы Как сделать контекстное меню выпадающим После того как контекстное меню будет создано и вы присвоите ему (надеюсь, вы уже умеете это делать) какое-нибудь запоминающееся имя, нужно сделать так, чтобы оно появля- лось на экране при каждом щелчке пользователя в окне формы правой кнопкой мыши (т.е. чтобы оно стало выпадающим). 1. Откройте форму, для которой создано контекстное меню. 2. Откройте окно Properties. Чтобы сделать это, нажмите клавишу Window, в окне Solution Explorer щелкните на кнопке Properties Window или щелкните правой кнопкой мыши в окне формы и выберите команду Properties. 3. Щелкните на свойстве ContextMenu (Контекстное меню) категории Behavior (Поведение). Рядом с ним появится кнопка с направленной вниз стрелкой. Глава 12. Подменю, расширяемые меню и выпадающие меню 137 4. Щелкните на кнопке со стрелкой. Visual Basic отобразит имена всех контекстных меню, созданных для этой формы. 5. Щелкните на названии того контекстного меню, которое, по-вашему мне- нию, должно отображаться на экране при каждом щелчке правой кнопкой мыши в окне формы. Вот и все. Теперь, стоит пользователю щелкнуть правой кнопкой мыши, контек- стное меню тут же появится на экране. Копирование команд в контекстное меню После того как контекстное меню будет создано и вы сделаете его выпадающим, вам еше придется написать для него коды BASIC, отвечающие за то, чтобы выбор из команд меню приводил к каким-нибудь действиям. Поскольку в контекстных меню зачастую содержатся команды, которые уже имеются в раскрывающихся меню, вы можете просто скопировать эти команды из раскрывающихся ме- ню в контекстные. Вот как это можно сделать. 1. Откройте форму с раскрывающимся меню, команды которого нужно скопи- ровать. 2. Чтобы открыть раскрывающееся меню, щелкните на его заголовке. Вначале вам, придется щелкнуть на значке меню в окне, расположен- ном в нижней части экрана. Visual Basic отобразит все команды, содержа- щиеся указанном вами меню. 3. Щелкните правой кнопкой мыши на той команде, которую нужно скопиро- вать. Рядом откроется выпадающее меню. 4. Выберите команду (Копировать). 5. В окне, расположенном внизу экрана, щелкните на значке контекстного ню, в которое должна быть скопирована команда. Visual Basic отобразит это контекстное меню в окне формы. 6. Щелкните правой кнопкой мыши в поле контекстного меню. Рядом откроется выпадающее меню. 7. Выберите команду Paste (Вставить). Visual Basic вставит скопировантю команду в выбранное вами поле кон- текстного меню. Чтобы те команды, которые были скопированы из других меню, стали рабочими, для них также нужно будет написать коды BASIC, даже несмотря на то, что в дру- гих меню коды для этих команд уже имеются. Часть Создание меню Глава Диалоговые окна > Создание диалоговых окон > Добавление в диалоговые окна пиктограмм и кнопок Использование стандартных диалоговых окон меню могут в значительной степени облегчить для пользователей процесс общения с программой (при условии, конечно, что пользователи знают, как обращаться с этими меню). Но почти все программы для диалога с пользователями помимо меню применяют и так называемые диалоговые окна. Очень часто программы используют диалоговые окна с целью сообщить пользователю, что именно они делают в данный момент. Например, на экране может появиться сообщение наподобие '"Печать страницы 4 из 75" или выполнила недопустимую операцию и сейчас будет закрыта". К тому же с помощью диалоговых окон программа может задавать пользователям вопро- сы, такие например, как '"Остановить печать?" или действительно хотите завершить вы- полнение программы?" Большие диалоговые окна могут быть буквально напичканы различ- ными опциями, позволяя пользователям за один раз сделать немалое количество установок и ответить на множество вопросов. Подобно тому как большинство программ, написанных под используют похожие раскрывающиеся меню (File, Edit, Help), имеют между собой много общего и диалоговые окна, используемые в разных программах. диалоговых окон Небольшие диалоговые окна обычно отображают какое-нибудь сообщение для пользова- теля и одну или несколько командных кнопок. Типичное диалоговое окно состоит из сле- дующих обязательных элементов: | строка заголовка; сообщение; оросающаяся в глаза пиктограмма; одна или несколько кнопок. Строка заголовка определяет цель или назначение диалогового окна, например: документа". Сообщением называется текст, который отображается в диалого- вом окне, скажем, такой: "Проверка документа завершена"'. Пиктограмма делает визуальный акцент на той информации, которая передается посредством диалогового окна. Кнопки по- зволяют сделать выбор, и обычно их количество колеблется от одной до трех штук. Простейшее диалоговое окно отображает на экране сообщение и кнопку ОК. В этом слу- чае пользователю ничего не остается, кроме как прочитать сообщение и щелкнуть на кнопке. Чтобы создать такое окно, вам нужно просто набрать команду и указать текст, кото- рый должен отображаться в строке заголовка и в самом окне. Приведенный ниже код BASIC создает простое диалоговое окно, показанное рис. 13.1. Глава Диалоговые окна ("Ready to t r y Linux y e t ? " , a g a i n " ) Это простейшее диалоговое окно совершенно безобидно. Оно всего лишь появляется на экране и исчезает, как только пользователь щелкает на кнопке ОК. Рис. Вот как выглядит простейшее диалоговое окно Добавление пиктограмм Пиктограммы помогают привлечь внимание пользователя к диалоговому окну. Visual Basic предлагает на ваш выбор четыре пиктограммы (рис. 13.2). Critical (Критическая) Exclamation (Предупреждающая) Information (Информационная) Question (Вопрос) Рис. 13.2. Четыре пиктограммы, которые мо- гут быть добавлены для отображения в про- стейших диалоговых окнах C r i t i c a l (Критическая)— красный кружок с белым крестиком окна с такой пиктограммой появляются, как правило, в экстремальных случаях и сопровож- дают действительно важные вопросы, типа такого; один подобный шаг, и по- следние данные будут удалены с вашего компьютера. Вы уверены, что этого?'' , Exclamation (Предупреждающая) восклицательный знак — акцентирует внимание на предупреждениях, о которых пользователь обязательно должен знать, например: "Память перегружена! Удалите ненужные программы." 1 Information (Информационная)— буква привлекает внимание к не очень тересным сообщениям, наподобие такого: '"Печать всех 3 056 страниц вашего докумен- та может занять некоторое время. Щелкните на кнопке когда будете готовы." Question (Вопрос)— вопросительный сопровождает безобидные вопро- • сы, вроде действительно не хотите выходить из этой программы?" Чтобы разместить в диалоговом окне пиктограмму, вначале нужно написать такой код: Приведенная выше строка должна быть самым первым кодом в тексте про- граммы, иначе Visual Basic не сможет ее правильно интерпретировать и про- грамма будет работать некорректно. 740 Часть Создание меню Если такая строка присутствует в кодах вашей программы, при создании диалоговых окон вы можете добавлять слова C r i t i c a l , Exclamation, или Q u e s t i o n меж- ду сообщением диалогового окна и его заголовком, например: ("Ready to t r y Linux y e t ? " , C r i t i c a l , _ "Windows Crashed Again") Такой код создает диалоговое окно, показанное на рис. 13.3. Г 13.3. Отображение пиктограммы Critical в диалоговом окне Если вы не добавили в код программы строку Imports при создании диалогового окна вместо слова C r i t i c a l нужно будет набрать C r i t i c a l : MsgBox ("Ready to t r y Linux yet?",__ "Windows Crashed Again") Visual Basic позволяет отобразить в диалоговом окне только одну стандарт- ную пиктограмму. Если вас такое ограничение не устраивает, можете создать свое диалоговое окно вручную. Для этого откройте отдельную форму, свойству Border- style присвойте значение Fixed Dialog, создайте в окне формы кнопки и рисун- ки. В этом случае вы можете разместить в окне столько рисунков, сколько посчи- таете нужным. Только не забывайте, что такой способ создания диалогового окна потребует от вас само- стоятельно добавить все необходимые кнопки, надписи, рисунки, а для того чтобы окно стало рабочим, нужно будет написать коды Если же вы решили не усложнять себе жизнь, а хотите создать диалоговое окно просто и быстро, воспользуйтесь командой MsgBox. Добавление командных кнопок В стандартном диалоговом окне можно разместить от одной до трех командных кнопок. В табл. 13.1 приведены шесть возможных вариантов наличия командных кнопок . Таблица Возможные варианты наличия командных кнопок в стандартном диалоговом окне Отображение Значение Константа Кнопка К Кнопки и Cancel Кнопки Abort, Retry, Ignore OKCancel Глава 13. Диалоговые окна 141 Окончание табл. 13.1 Отображение Значение Константа Кнопки Yes, No, Cancel Кнопки Yes и No Кнопки Retry и Cancel YesNo Чтобы добавить в окно командные кнопки, выберите один из возможных вариантов (например, кнопки и Cancel) и наберите соответствующую константу в коде программы, между сообщением диалогового окна и его заголовком: MsgBox ("File not found", "Cryptic Message") Чтобы иметь возможность использовать перечисленные в табл. константы для добавления в диалоговые окна комбинации командных кнопок, первой строкой в кодах вашей программы должна быть такая: Если такой строки в начале программы не будет, то при добавлении командных кнопок придется использовать код Micro s o f t . Basic MsgBox not found",_ "Cryptic Error Message") Чтобы добавить в диалоговое окно и пиктограмму, и командные кнопки, укажите их в коде программы поставив между ними команду Or. Таким образом, ес- ли вы хотите отобразить в диалоговом окне информационную пиктограмму и кнопки Yes, No (рис. 13.4), наберите следующий код: MsgBox ("File not Or "Cryptic Error Message") Рис. 13.4. Диалоговое окно с пикто- граммой и командными кнопками Как определить, на какой кнопке щелкнул пользователь Если в диалоговом окне имеется только кнопка ОК, все предельно просто: щелчок поль- зователя на таковой приводит к закрытию диалогового окна. Но как быть, если кнопок две или три? В этом случае у пользователя есть выбор, и. следовательно, вам нужно будет напи- сать коды BASIC для определения того: v на какой кнопке щелкнул пользователь; I что делать программе, если пользователь выбрал ту или иную кнопку. 142 Часть Создание меню Cancel (Отмена) Abort (Прервать) Retry (Повторить) Ignore (Пропустить) (Да) No (Нет) 1 2 3 4 5 7 Семи кнопкам, которые может выбрать пользователь, соответствуют определенные чи- словые значения (табл. 13.2). Таблица Командные кнопки, которые могут быть выбраны пользователем Кнопка Числовоезначение Константа Cancel Abort Retry Ignore Yes No Чтобы программа могла определить, на какой кнопке щелкнул пользователь, нужно напи- сать код, в котором переменной будет присвоено значение, возвращаемое командой Dim As I n t e g e r i n t R e p l y - MsgBox ( " F i l e not found", " C r y p t i c Message") Этот код отображает диалоговое окно с кнопками ОК и Cancel. Если пользователь щелкает на кнопке ОК, переменной i n t R e p l y присваивается значение 1 (см. табл. 13.2). Если пользователь щелкает на кнопке Cancel, переменной i n t R e p l y присваивается значение 2. использование окон С помощью простых диалоговых окон невозможно решить все проблемы, поэтому вам наверняка захочется создать более сложные и в то же время хорошо всем знакомые диа- логовые окна, наподобие File Save (Сохранение документа) или Print Чтобы помочь вам в этом нелегком деле, Visual Basic предлагает на выбор несколько раз- работанных заранее стандартных диалоговых окон, каждое из которых представлено сво- им инструментом на панели Toolbox: • (Открытие документа); SaveFileDialog (Сохранение документа); ColorDialog (Цвет); FontDialog (Шрифт); (Печать); PageSetupDialog (Параметры страницы). |