Скачать 0.92 Mb.
|
Как вы узнали из предыдущего урока, приложения Visual Basic строятся на основе форм. Практически любое приложение содержит формы, а на формах находятся управляющие элементы, которые расширяют функциональные возможности приложения и обеспечивают его всем необходимым для взаимодействия с пользователем. В этом уроке мы рассмотрим самые распространенные и нужные управляющие элементы Visual Basic 6. В этом уроке нам не удастся подробно рассмотреть все элементы, и мы ограничимся лишь теми, с которыми вам придется работать больше всего. Не огорчайтесь! Остальные элементы будут рассмотрены в последующих главах. ^ Управляющие элементы (или просто элементы) — «кирпичи», из которых строятся приложения в Visual Basic. Благодаря элементам ваши формы могут делать нечто большее, чем просто занимать место на экране. Некоторые элементы, например кнопки и текстовые поля, предназначены для взаимодействия с пользователем. Другие остаются невидимыми для пользователя и выполняют вспомогательные задачи. Примером невидимого элемента служит таймер. С помощью элементов вы без особого труда наделите свои программы различными возможностями. Чтобы разместить элемент на форме, можно дважды щелкнуть на нужном значке в панели элементов или же «нарисовать» элемент на форме — для этого следует щелкнуть на нем мышью и растянуть контур на форме (в этом случае перетаскивание указателя мыши определяет размеры элемента). После размещения элементов можно задать их свойства. Щелкните на элементе, чтобы сделать его активным, и измените нужные значения в окне свойств. Панель элементов представляет собой окно, внутри которого находятся значки различных элементов, используемых в приложениях (рис. 3.1). В этом уроке мы рассмотрим некоторые элементы, которыми вы сможете пользоваться в своих приложениях. В комплект Visual Basic 6 входит ряд дополнительных элементов, многие из которых были усовершенствованы по сравнению с предыдущими версиями. Некоторые из них предназначены для работы с мультимедиа, другие (например, элементы Winsock и Internet Control) ориентированы на работу в Internet. Существует также несколько дополнительных элементов для работы с базами данных. Более того, теперь вы можете создавать собственные элементы ActiveX и включать их в панель элементов. Нестандартные элементы также можно распространять среди других разработчиков. Более подробная информация о создании и распространении таких элементов приведена в уроке 17, «Использование ActiveX». ![]() Кнопки Наверное, самым распространенным управляющим элементом в приложениях для Windows являются кнопки (см. рисунок). Это в полной мере относится и к Visual Basic. Кнопки используются для решения самых разных задач — от простейшего ввода информации до вызова специальных функций, связанных с формами. Конечно, вам уже приходилось встречаться с кнопками хотя бы на примере ОК и Cancel в диалоговых окнах. В ближайших разделах мы рассмотрим важнейшие свойства, методы и события этого простого, но очень полезного элемента. Общий принцип работы кнопок описан в разделе «Методы кнопок», а приведенный в нем пример поможет перейти от теории к практике. ПРИМЕЧАНИЕ Напоминаю: свойства описывают атрибуты объекта. Методами называются действия, которые объект может выполнять по вашему приказу, а при помощи событий элемент сообщает о том, что с ним происходит. ^ Далее перечислены все свойства кнопок. Свойства, используемые чаще других, выделены жирным шрифтом. Если вас заинтересует свойство, не описанное далее, выберите его в окне свойств и вызовите справку клавишей F1. Appearance Enabled hWnd Style BackColor Font Index Tablndex Cancel FontBold Left TabStop Caption Fontltalic MaskColor Tag CausesValidation FontName Mouselcon ToolTipText Container FontSize MousePointer Top Default FontStrikethru Name UseMaskColor DisabledPicture FontUnderline OLEDropMode Value DownPicture ForeColor Parent Visible Draglcon Height Picture WhatsThisHelpID DragMode HelpContextID RightToLeft Width Два самых важных свойства любой кнопки — Name и Caption. По значению первого Visual Basic отличает одну кнопку от других. Нам придется довольно часто встречаться со свойством Name на страницах этой книги. Свойство Caption определяет текст, который должен находиться на кнопке. Символ «амперсенд» (&) позволяет работать с кнопкой при помощи клавиш вместо щелчков мышью. Для этого следует нажать клавишу Alt вместе с подчеркнутой буквой в надписи того элемента, к которому вы желаете обратиться. Кроме того, пользователь может перейти к кноп-л ке клавишей Tab и затем имитировать щелчок мыши клавишей Пробел. ПОДСКАЗКА Вы должны хорошо разбираться в том, как работают клавиши ускоренного доступа, потому что не все пользователи предпочитают работать с мышью. Например, те, кому приходится набирать большие объемы текста, не любят снимать пальцы с клавиатуры, чтобы сменить шрифт и затем продолжить ввод. Старайтесь при любой возможности создавать клавиши ускоренного доступа, и пользователям будет удобнее работать с вашей программой. У кнопок имеется еще два полезных свойства — Cancel и Default. Если задать свойству Default значение True, пользователь сможет имитировать нажатие кнопки при помощи клавиши Enter. Если свойство Cancel имеет значение True, нажатие клавиши Esc приводит к закрытию формы. ПРИМЕЧАНИЕ Если на форме находится несколько кнопок, лишь у одной из них свойство Default может иметь значение True; эта кнопка используется по умолчанию на данной форме. Аналогично^ лишь у одной кнопки свойство Cancel может быть равно True. Выбирая значение свойства Style, вы можете оставить кнопку чисто текстово| или поместить на нее рисунок. Если вы хотите, чтобы в нормальном, ненажато» остоянии на кнопке присутствовал рисунок, задайте имя графического файла в ойстве Picture. Рисунки для других состояний кнопки (заблокированного и нажатого) задаются в свойствах DisabledPicture и DownPicture. Fiue два свойства, Enabled и Visible, позволяют ограничить доступ к кнопке. Если какое-либо из них равно False, кнопка становится недоступной. Блокировка кнопок может пригодиться в тех случаях, когда пользователь должен выполнить определенные действия (скажем, заполнить текстовые поля) и лишь затем нажать кнопку для перехода к следующей стадии процесса. ПОДСКАЗКА Если вы хотите заблокировать кнопку, значение False следует ~~задать для свойства Enabled, а не для Visible. В первом случае заблокированная кнопка остается на экране, и пользователь понимает, что при определенных обстоятельствах она станет доступной; во втором случае кнопка просто исчезает. Свойство Tablndex определяет порядок перебора элементов клавишей Tab. Элемент, у которого свойство Tablndex равно 0, получает фокус первым (при условии, что он не был заблокирован или сделан невидимым). При изменении свойства Tablndex одного элемента изменяется порядок перебора и у других элементов. Если вы не хотите, чтобы пользователь мог перейти к элементу клавишей Tab, задайте свойству TabStop значение False; впрочем, это не помешает пользователю перейти к элементу, щелкнув на нем мышью. Чтобы исключить и такую возможность, воспользуйтесь описанными ранее свойствами Enabled и Visible. ^ Несомненно, из всех событий, связанных с кнопками, чаще всего используется Click. Ниже перечислены все события кнопок. Click KeyPress MouseUp OLESetData DragDrop KeyUp OLECompleteDrag OLEStartDrag DragOver Lo'stFocus OLEDragDrop GotFocus MouseDown OLEDragOver KeyOown MouseMove OLEGiveFeedback Вероятно, на первых порах вас будет в основном интересовать событие Click. Именно оно чаще всего используется для кнопок, а остальные события понадобятся лишь после того, как вы освоите программирование на Visual Basic. С другой стороны, вместо события Click можно воспользоваться событием MouseUp. Во многих приложениях для Windows 95 используется именно это событие, поскольку после нажатия кнопки мыши пользователь может передумать и отказаться от возбуждения события Click. ^ Далее перечислены различные методы кнопок, самым распространенным из кото-Pbix является SetFocus. Drag OLEDrag SetFocus ZOrder Move Refresh ShowWhatsThis Метод SetFocus используется для передачи фокуса конкретной кнопке. Например, с его помощью можно вернуться к кнопке по умолчанию после того, как будет закончено редактирование текстового поля на форме, В этом случае код будет выглядеть так: cmdMyButton.SetFocus А располагается он обычно в процедуре события Change текстового поля. ^ Работу с кнопками лучше всего рассматривать на практическом примере: 1. Если вы установили примеры приложений с компакт-диска Visual Basic, откройте проект \MSDN98\98vs\1033\Samples\VB98\Controls\Controls.vbp1. ПРИМЕЧАНИЕ Если вы еще не установили примеры с компакт-диска, обрати-тесь к разделу «Работа с несколькими проектами» из урока 1 — в нем рассказано, как это сделать. Эти примеры понадобятся вам во многих упражнениях этого урока. 2. Запустите приложение командой Run > Start. В диалоговом окне Control Examples нажмите кнопку Test Buttons — на экране появится форма. 3. Нажмите кнопку Сменить сигнал и проследите, как изменяется сигнал светофора. Когда тестирование будет завершено, нажмите кнопку Закрыть. Мы усовершенствуем это приложение и поместим изображение светофор прямо на кнопку Сменить сигнал. 4. Завершите работу приложения командой Run >• End. 5 Активизируйте форму Test Buttons, дважды щелкнув на строке frmButton в окне проекта. 6 Растяните кнопку Сменить сигнал до таких размеров, чтобы в ней могло поместиться изображение светофора. В окне свойств установите значение свойства Style кнопки в 1 - Graphical. 7 Задайте свойствам Visible элементов imgGreen, imgYellow и imgRed значение False. 8 Включите в процедуру события Load формы следующий фрагмент: Private Sub Form_l_oad() cmdChange.Picture = imgGreen.Picture End Sub 9. Измените код процедуры ChangeSignal: Private Sub ChangeSignalO Static signal As Integer signal = signal + 1 If signal > 3 Then signal = 1 Select Case signal Case Is = 1 Case Is = 1 cmdChange.Picture = imgYellow.Picture Case Is = 2 cmdChange.Picture = imgRed.Picture Case Is = 3 cmdChange.Picture = imgGreen.Picture End Select End Sub 10. Еще раз запустите программу (Run > Start). Снова нажмите кнопку Test Buttons, чтобы вызвать одноименное диалоговое окно. Теперь при нажатии кнопки Сменить сигнал изображение светофора на кнопке изменяется точно так же, как раньше изменялся рисунок над кнопкой. Невзирая на простоту, этот пример наглядно демонстрирует основные принципы работы с кнопками. Вы можете включить в процедуру события Click другие команды, чтобы кнопка выполняла дополнительные задачи. Например, если кнопка должна закрывать приложение, процедура Click будет выглядеть так: Private Sub cmdChangeSignal_Click() End End Sub ПОДСКАЗКА Чтобы поместить графическое изображение на кнопку, необходимо сначала.установить значение свойства Style в 1 - Graphical. Затем в свойстве Picture указывается имя графического файла с нужным рисунком. элемента — текстового поля с маской или одного из событий Key... Текстовое под с маской позволяет задать шаблон, или маску ввода. Этот элемент относится i числу нестандартных, и чтобы пользоваться им, необходимо включить его в па нель элементов. В электронной документации Microsoft Developer Network, кот рая поставляется на компакт-диске Visual Basic, имеются полные описания все нестандартных элементов. ^ Ниже перечислены методы текстовых полей. Drag LinkRequest OLEDrag ShowWhatsThis LinkExecute LlnkSend Refresh ZOrder LinkPoke Move SetFocus Большинство методов используется довольно редко, однако методы Link... пригодятся, если ваше текстовое поле участвует в динамическом обмене данными через протокол DDE (Dynamic Data Exchange). DDE позволяет установить связь между приложениями и по мере того, как пользователь работает с одним приложением, посылать информацию другому приложению. К сожалению, детальное рассмотрение DDE выходит за рамки книги. Если эта тема заинтересует вас, обращайтесь к электронной документации. Напротив, метод SetFocus очень часто используется в приложениях. Когда пользователь нажимает кнопку (скажем, Обновить данные), фокус остается у кнопки. Если процедура события Click кнопки завершается методом SetFocus, то фокус можно передать текстовому полю для ввода данных, благодаря чему пользователь избавляется от необходимости лишний раз щелкать мышью или нажимать клавишу Tab. Оператор выглядит так: txtMyTextBox.SetFocus ^ Следующий пример показывает, как используется на практике метод SetFocus: 1. Откройте проект \MSDN98\98vs\1033\Samples\VB98\Controls\Controls.vbp, если он не был открыт ранее. 2. Запустите приложение командой Run >• Start. В диалоговом окне Control Examples нажмите кнопку Text Box. На экране появляется форма, похожая на рис. Устанавливая различные переключатели в рамке, можно выполнять некоторые операции с левым текстовым полем. Свойство Multiline правого поля установлено в True, в этом нетрудно убедиться по внешнему виду текста. В приложениях, работающих с текстами, нередко используются текстовые поля с активизированным свойствами Multiline и ScrollBars. В таких случаях текстовое поле растягиваете на всю форму, а ее размер фиксируется (свойством BorderStyle). Если форма должна иметь переменные размеры или является дочерней формой интерфейса MDI, вам придется динамически изменять размеры текстового поля при изменении размеров формы. Например, можно включить следующий фрагмент в процедуру события Resize формы: txtTextl.Top = frmForml.ScaleTop txtTextl.Left = frmForml.ScaleLeft txtTextl.Width = frmForml.Width txtTextl.Height = frmForml.ScaleHeight Свойства Scale... относятся к внутренним размерам формы. Следовательно, свойства Height и ScaleHeight формы имеют различные значения. В значении ScaleHeignt не учитывается пространство, занимаемое заголовком и границами формы. 3. Завершите работу приложения и активизируйте форму f rmText в окне дизайнера. 4- Дважды щелкните на переключателе Установить курсор после 5 символа, чтобы вызвать окно программы с кодом процедуры: Private Sub opt!nsert_Click() установить курсор после 5 символа txtDisplay.SelStart = 5 передать фокус текстовому полю, чтобы изменения были наглядно видны txtDisplay.SetFocus End Sub Свойство SelStart определяет начальную позицию (в символах) выделенного Фрагмента текстового поля. В данном случае выделение должно начинаться с 5-го символа. Метод SetFocus возвращает фокус .ввода текстовому полю txtDisplay. ^ Private Sub optSelect_Click() установить курсор в начало txtDisplay.SelStart = О ' определить длину строки и выделить ' соответствующее количество символов txtDisplay.SelLength = Len(txtDisplay.Text) ' передать фокус текстовому полю, ' чтобы изменения были наглядно видны txtDisplay.SetFocus End Sub На примере этого фрагмента видно, как выделить все содержимое текстового поля в программе. Если бы в меню присутствовала команда Select All, ее процедура была бы похожа на этот фрагмент. Если вы хотите узнать, какой текст выделен в поле, обращайтесь к свойству SelText. ^ Private Sub cmdClose_Click() If txtDisplay.SelLength > 0 Then MsgBox "Выделен текст" & txtDisplay.SelText End If End ' Выгрузить форму End Sub 7. Запустите приложение. В диалоговом окне Text Box Properties выделите слово Multiline и нажмите кнопку Close. |
![]() | Приборы обеспечивают автоматическую передачу информации о текущем состоянии охраняемого объекта и не имеют аналогов по соотношению... | ![]() | «Валдайские зори» созданы все условия для семейного и молодежного отдыха и развлечений, а большой конференц-зал со всем необходимым... |
![]() | Секреторный цикл периодически повторяющиеся процессы, которые обеспечивают поступление из крови в клетку воды, неорганических и простых... | ![]() | Технология качественного монтажа заключается в применении некоторых мер, которые обеспечивают необходимую долговечность монтажного... |
![]() | При проектировании модели поликультурного образовательного пространства необходимо найти такие механизмы, которые обеспечивали... | ![]() | ... |
![]() | Лекция: Элементы теории реляционных баз данных: функциональные зависимости и декомпозиция без потерь | ![]() | Несмотря на широкие возможности, которые в этом вопросе им предоставлены, существует ряд условий, которые в договор включаться не... |
![]() | Любви, полностью регулировал их процесс питания. Организм человека обеспечивался всем необходимым в нужном количестве и в самое благоприятное... | ![]() | Корпорация intel представляет инновационные технологии для пк, обеспечивающие новые возможности для цифрового дома и офиса |