Глава 5. Создание пользовательского интерфейса: разберемся в деталях 69 Настройка размеров объектовПосле того как будет создан, у вас может возникнуть желание изменить его разме- ры. В Visual Basic это можно сделать двумя способами: используя мышь; изменив свойства Width (Ширина) и Height (Высота). Чтобы изменить размер объекта с использованием мыши, выполните следующие действия. 1. Щелкните на объекте, размер которого нужно изменить.Вокруг границ этого объекта появятся маркеры. 2. Поместите курсор мыши над границей объекта так, чтобы он принял виддвунаправленной стрелки.3. Нажмите левую кнопку мыши и перетащите курсор. Когда объект приметнужный размер, отпустите кнопку мыши.А вот как изменятся размер объекта при использовании окна Properties.1. Щелкните на объекте, размер которого нужно изменить.2. Откройте окно Properties. Чтобы сделать это, нажмите клавишу , выберите команду Window, в окне Solution Explorer щелкните на кнопке Properties Window или щелкните правой кнопкой мыши в окне формы и выберите команду Properties. 3. Щелкните на знаке который отображается слева от свойства Size (Размер), принадлежащего к категории Layout (Размещение). Visual Basic отобразит значения свойств Width (Ширина) и Height (Высота). 4. Укажите новые значения для свойств Width и Height. Мышь лучше использовать в том случае, когда размеры не должны быть заданы с точно- стью до миллиметра. Вручную задавать значения свойств Width и Height нужно тогда, когда необходима абсолютная точность, или если вам нравится, когда расположенные рядом объ- екты имеют одинаковые размеры. Вместо того чтобы изменять значения свойств Width и Height, можно изменить зна- чение свойства Size. Значение свойства Size отображается в формате Width, Height. Это значит, что если нужно свойству Width присвоить значение 97, а свойству значение 2 3, то для свойства Size следует указать значение 97, 23. Перемещение объектов на экране В окне формы объекты могут быть расположены где угодно. Visual Basic предостав- ляет в ваше распоряжение два способа определения позиции объекта в окне формы: с использованием мыши; | путем изменения свойств X и Y, принадлежащих к категории Layout (Размещение). Чтобы изменить положение объекта с помощью мыши, сделайте следующее. 1. Щелкните на объекте, который нужно переместить, таким образом, чтобы вокруг его границ отобразились черные 70 Часть II. Создание пользовательского интерфейса
2. Расположите курсор мыши над объектом (но не над маркерами объекта). За-тем нажмите левую кнопку мыши и перетащите объект на новое место.3. Отпустите кнопку мыши.Используйте этот способ тогда, когда нет необходимости точно выравнивать объ- ект относительно окна формы и других объектов. Если же положение объекта должно быть задано с абсолютной точностью, укажите в окне Properties значения свойств X и Y. Значение свойства X определяет расстояние от левого края формы до левого края объекта. Значение свойства Y определяет расстояние от верхнего края формы до верхнего края объекта. Изменить размещение объекта с использованием окна Properties можно следующим образом. 1. Щелкните на объекте, который вы хотите переместить.Visual Basic выделит выбранный вами объект и отобразит вокруг его границ маркеры. 2. Откройте окно Properties. Чтобы сделать это, нажмите клавишу , выберите команду Window, в окне Solution Explorer щелкните на кнопке Properties Window или щелкните правой кнопкой мыши в окне формы и выберите команду Properties. 3. В категории Layout найдите свойство Location (Положение) и щелкните на знаке который отображается слева от названия свойства. Visual Basic отобразит текущие значения свойств X и Y. 4. Укажите новые значения для свойств X и Y. Вместо того чтобы изменять значения свойств X и Y, можно изменить значение свойства Location, которое отображается в формате X ,Y. Другими словами, если X имеет значение 4 5, a значение 2, то свойство Location будет иметь значе- ние 4 5 , 2. Прикрепление объектов к сторонам формы Любой объект можно отобразить растянутым по всей длине или ширине формы и прикре- пленным к одной из ее сторон. Даже если пользователь увеличит или уменьшит размеры формы, объект останется прикрепленным к ее стороне. Чтобы прикрепить объект, выполните следующие действия. 1. Щелкните на объекте, который вы хотите растянуть вдоль одной из сторон формы. Вокруг границ объекта появятся маркеры. 2. Откройте окно Properties. Чтобы сделать это, нажмите клавишу , выберите команду Window, в окне Solution Explorer щелкните на кнопке Properties Window или щелкните правой кнопкой мыши в окне формы и выберите команду Properties. 3. В категории Layout щелкните на свойстве Dock (Прикрепить). Рядом появится кнопка со стрелкой. 4. Щелкните на кнопке со стрелкой, направленной вниз. Откроется графическое меню, в котором будут отображаться серые прямоугольни- ки, характеризующие способы прикрепления объекта к стороне формы (рис. 5.4). Глава 5. Создание пользовательского интерфейса: разберемся в деталях 71
Рис. 5.4. Меню прикрепления, где можновыбрать сторону, к которой будет при-креплен данный5. Щелкните на той серой кнопке, которая отвечает нужному расположениюобъекта.Visual Basic сразу же растянет объект и прикрепит его к указанной вами стороне. Если объект ранее уже был прикреплен к какой-либо стороне, щелкните на кнопке None, и данная опция будет снята. Закрепление объектов Когда вы прикрепляете объект, он автоматически изменяет свои размеры и становится растянутым вдоль всей формы. Если вы не хотите, чтобы объект менял свою форму, можно просто закрепить его положение относительно одной или нескольких сторон. Закрепление объекта относительно какой-то стороны означает, что как бы пользователь не изменял размеры окна формы, расстояние между объектом и указанной стороной будет оставаться неизменным. Чтобы закрепить объект, сделайте следующее. 1. Щелкните на объекте, который вы хотите закрепить.Вокруг границ этого объекта отобразятся маркеры. 2. Откройте окно Properties. Чтобы сделать это, нажмите клавишу , выберите команду Window, в окне Solution Explorer щелкните на кнопке Properties Window или щелкните правой кнопкой мыши в окне формы и выберите команду Properties. 3. В категории Layout щелкните на свойстве Anchor (Закрепить). Появится кнопка с направленной вниз стрелкой. 4. Щелкните на кнопке со стрелкой. Появится графическое меню, отображающее объект и ные к четырем сторонам прямоугольники, символизирующие способы закрепле- ния (рис. 5.5). Рис. 5.5. В меню закрепления вы можете указать стороны, относительно которых будет закреплен данный объект 72 Часть II. Создание пользовательского интерфейса
5. Щелкните на одном или нескольких четырехугольниках, направленных кнужным сторонам.Теперь каждый раз, когда будет открываться форма, расстояние между объектом и стороной, относительно которой он закреплен, будет оставаться неизменным. Таким образом, если, скажем, объект закреплен относительно верхней и левой сторон, то как бы пользователь не изменял размеры окна, расстояние между объ- ектом и этими сторонами будет оставаться прежним. Копирование созданного объекта После того как объект будет создан и свойства его будут настроены нужным образом, вам наверняка захочется просто скопировать его, чтобы создать еще один или несколько таких же объектов. Это избавит вас от необходимости снова и снова проходить через все этапы по- строения объектов. Чтобы скопировать сделайте следующее. Щелкните на объекте, который нужно скопировать.Вокруг границ отобразятся маркеры. 2. комбинацию клавиш команду или щелкните на кнопке3. Нажмите комбинацию клавиш выберите команду или щелкните на кнопке Paste.Visual Basic создаст еще один такой же объект— прямо над тем, который вы скопировали. 4. Переместите скопированный объект на новое место.О том, как это делается, было рассказано в разделе "Перемещение объектов на После того как с помощью операции копирования вы создадите новый объект, ему нужно будет присвоить какое-нибудь запоминающееся имя (Visual Basic ав- томатически дает новым объектам стандартные имена, наподобие Если вас такое имя устраивает, можете его оставить.) Удаление объектов Может случиться так, что вы нарисуете какой-то объект, но потом вдруг решите, что он вам вовсе не нужен. Чтобы избавиться от такого объекта, сделайте следующее. 1. Щелкните на объекте, который нужно удалить.2. Нажмите клавишу или выберите команду Удалить). Если до того как будет произведена операция удаления вы нажмете комбинацию клавиш , удаленный объект можно будет впоследствии восстановить. Глава 5. Создание пользовательского интерфейса: разберемся в деталях 73
Выделение сразу нескольких объектов длякопирования или удаленияДо того как переместить, скопировать или удалить объект, его нужно выделить (т.е. щелкнуть на нем). Если необходимо переместить, скопировать или удалить сразу несколько объектов, выделить таковые вы сможете одним из двух методов: 1 с использованием мыши; посредством щелчков на нужных объектах при нажатой клавише или 1 . Чтобы выделить объекты, используя мышь, сделайте следующее. 1. Поместите курсор мыши слева и сверху от группы объектов, которые вы хо- тите выделить. (Но только не над каким-то объектом.) Если вы поместите курсор мыши прямо над каким-либо объектом, вы сможете только лишь перетаскивать но выделять группу объектов. 2. Нажмите левую кнопку мыши и перетащите курсор вниз и вправо от груп- пы объектов, которые нужно выделить. Visual Basic отобразит пунктирную линию вокруг области выделения. 3. Отпустите кнопку мыши. Visual Basic отобразит серые прямоугольники вокруг всех выделенных вами объектов. Чтобы выделить группу объектов вторым способом, выполните такие действия. 1. Щелкните на первом объекте, который вы хотите выделить. Visual Basic отобразит вокруг этого объекта черные маркеры. 2. Поместите курсор мыши над вторым объектом. 3. Нажав и удерживая в таком состоянии клавишу или , щелкни- те на втором объекте. Visual Basic отобразит серые прямоугольники над этим объектом и над тем, который уже был выделен. 4. Повторяйте второй и третий шаги до тех пор, пока не выделите все объекты. Определение для объектов свойства Tablndex Наряду с использованием для выделения объектов мыши, Visual Basic предоставляет возможность выбора таковых с помощью клавиши Для определения очередности, в которой объекты будут выделяться при нажатии клавиши используется свойство, но- сящее название Tablndex. у которого свойство Tablndex имеет значение 0, выделяется сразу же при запуске программы. Если пользователь нажимает клавишу выделяется объект, у которого свойство Tablndex имеет значение 1 и т.д. Значение свойства Tablndex первого объекта, который вы создадите в своей фор- ме, будет равным 0, второго объекта — 1 и т.д. 74 Часть //. Создание пользовательского интерфейса
Свойство Tablndex определяет порядок, в котором Visual Basic выделяет объекты, если пользователь нажимает клавишу клавиши управления курсором (это те, на кото- рых нарисованы стрелки) или комбинацию клавиш Путем нажатия клавиши клавиши со стрелкой вниз и клавиши со стрелкой вправо выделяется объект, который имеет значение свойства Tablndex, на единицу I большее, чем значение свойства Tablndex у текущего объекта. | Нажатием комбинации клавиш , клавиши со стрелкой вверх и клавиши со стрелкой влево выделяется объект, который имеет значение свойства Tablndex, на единицу меньшее, чем значение свойства Tablndex у выделенного в данный момент объекта. Для выделения переключателей можно использовать только кла- виши со стрелками, но не клавишу и не комбинацию клавиш . Нажатием на пробел или на клавишу выбирается выделенный объект. (Это равносильно щелчку на объекте мышью.) Некоторые объекты (например, окна с рисунками) вообще не имеют свойства Tabln- dex, поэтому, какие бы клавиши вы ни нажимали бы, выделить их вы не сможете. Вот как изменяется значение свойства Tablndex. 1. Выберите команду Order Tab). Visual Basic отобразит значения свойства Tablndex прямо над самими объ- ектами (рис. 5.6). Poorly User chance '. "; . . • picked •- Рис. 5.6. Значения свойства Tablndex отображают в котором будут выделяться объекты при нажатии клавиши 2. Щелкните на объекте, который должен, по-вашему мнению, выделяться первым (значение свойства Tablndex для него должно стать нулевым). Visual Basic установит для него значение 0. 3. Щелкните на объекте, который должен следующим (ему будет присвоено значение, на единицу большее, чем у того объекта, на котором вы щелкнули в предыдущий раз). Глава 5. Создание пользовательского интерфейса: разберемся в деталях 75
4. Повторяйте шаг 3 до тех пор, пока всем объектам не будут присвоены нуж- ные значения. 5. Выберите команду Order. Visual Basic скроет значения Tablndex для всех объектов. Если по какой-то причине вы не хотите, чтобы пользователи могли выделять объ- ект с помощью клавиши присвойте свойству TabStop (категория Behavior) значение F a l s e (Ложь). Это свойство доступно лишь тогда, когда снято отобра- жение в окне формы значений свойства Tablndex. Выделение объектов серым цветом Если вы не хотите, чтобы пользователь щелкал на каком-то объекте (например, на кнопке или флажке), можно выделить его серым цветом, как показано на рис. 5.7. Такой объект как бы говорит пользователю: "Придет время, когда на мне можно будет щелкать, но сейчас это- го делать не надо". Dimmed ft objects I'm not dimmed! 5.7. Обычный объект и объект, который выделен серым Чтобы выделить объект серым цветом, сделайте следующее. 1. Щелкните на объекте, который вы хотите выделить серым. 2. Откройте окно Properties. Чтобы сделать это, нажмите клавишу , выберите команду Properties Window, в окне Solution Explorer щелкните на кнопке Properties Window или щелкните правой кнопкой мыши в окне формы и выберите команду Properties. 3. Щелкните на свойстве Enabled (Разрешенный), которое расположено под категорией Behavior, и присвойте ему значение F a l s e . Выделенный серым объект не способен ни на какие действия. Если же вы хотите, чтобы он был недоступным не все время, а только иногда, напишите для него соответствующие ко- ды Чтобы вы получили представление о беспрецедентной простоте кодов BASIC, ни- же приведен код, снимает выделение серым с кнопки (имя которой, ска- жем, b t n E x i t ) . Для этого нужно присвоить свойству кнопки Enabled значение True (Истина). Вот как это делается: = True 76 Часть II. Создание пользовательского интерфейса
Если вы хотите с помощью кода BASIC сделать кнопку недоступной, присвойте свойству Enabled значение В случае кнопки это будет выглядеть так; False с помощью кодов BASIC можно выделять кнопку серым или снимать с нее выделе- ние в процессе выполнения программы. Это может быть ответом на какие-либо действия, производимые пользователем (например, на ввод текста, перемещение беспомощное щелканье мышью и т.п.). Как сделать объект невидимымПомимо выделения недоступного объекта серым (что может смущать пользователей, по- скольку объект все равно остается глазами и на нем хочется щелкнуть), таковой можно вовсе убрать с экрана. Чтобы отменить отображение объекта на экране, вы должны выполнить такие действия. 1. Щелкните на объекте, который отображать на экране не нужно.2. Откройте окно Properties.Чтобы сделать нажмите клавишу , выберите команду Window, в окне Solution Explorer щелкните на кнопке Properties Window или щелкните правой кнопкой мыши в окне формы и выберите команду Properties. 3. Находясь в категории Behavior, щелкните на свойстве Visible (Видимый) и присвойте ему значение F a l s e . Убрать объект с экрана можно также с помощью кодов Вот пример кода, который убирает с экрана кнопку btr.New: = F a l s e Как и выделенные скрытые на экране объекты становятся недоступными пользо- вателю. сделать объект доступным, нужно его снова отобразить на экране, присвоив свойству Visible значение True. Вот пример кода, который позволит снова отобразить на эк- ране кногку = на Приведенный ниже пример демонстрирует, насколько легко и быстро можно создать код BASIC, изменяющий текст, который отображается на кнопке. Вначале в окне формы нари- суйте кнопку и измените ее свойства, как показано в табл. 5.3. 5 Объект 1 .3. Новые значения для свойств кнопки Text Значение Change Text Глава 5. Создание пользовательского интерфейса: разберемся в деталях 77
Дважды щелкните на кнопке и наберите код для создания процедуры управлениями событиями: P r o t e c t e d Sub (3yVal s e n d e r e As = " I t w o r k s ! " End Sub Запустив программу, щелкните па кнопке, где написано Change T e x t . Visual Basic самым волшебным образом заменит на кнопке надписью It w o r k s ! Чтобы остановить выполнение этой доброй и наивной программы, щелкните на кнопке закрытия окна формы. 78 Часть II. Создание пользовательского интерфейса
Глава 6 Разработка формглаве... Создание форм и определение способа их отображения Изменение внешнего вида формы Открытие и закрытие формы амым главным элементом пользовательского интерфейса является окно, которое в Visual Basic называется формой. Большинство программ, написанных на языке Visual Basic используют для своей работы не менее одной формы, а более сложные программы применяют по две, три и более форм. Программа может использовать одну форму, в частности, для отображения набора кно- пок. Если пользователь щелкает на определенной кнопке, открывается вторая форма, содер- жащая, скажем, имена, адреса и телефоны сотрудников, у которых он одолжил деньги до зар- платы, но пока еще ничего им не вернул. Когда вы приступите к разработке проекта Windows Applications, Visual Basic авто- матически создаст одну пустую форму, чтобы вы могли сразу начать создавать свой пользо- вательский интерфейс. Но если ваша программа не будет отличаться особым аскетизмом и простотой, вам наверняка понадобится еще парочка форм. Вот каким образом можно создать новую форму. 1. Выберите команду Windows Form форму)или щелкните на панели инструментов на кнопке со стрелкой, расположен-ной справа от значка Add New и выберите пункт Add Windows Откроется диалоговое окно Add New Item (Добавить новый элемент). 2. Укажите имя новой формы в текстовом поле Name.Когда вы вводите имя формы, не нужно указывать расширение файла . VB; оно будет добавлено к имени файла автоматически. 3. Щелкните на кнопке Open.Visual Basic отобразит новую форму, готовую к применению. Возьмите за привычку периодически сохранять результаты проделанной вами работу, тем более что для этого нужно всего лишь нажать комбинацию клавиш или выбрать команду All Сохранить все). Если ваш компьютер зависнет или если вдруг пропадет напряжение в сети, вы потеряете только ту часть работы, которая была выполнена уже после последнего сохранения. Переименование формПри создании формы Visual Basic автоматически присваивает ей стандартное имя, . vb. Но вы можете дать форме более подходящее имя. |