IvanSh Пользователь Сообщений: 57 |
Еще раз здрасте! 1. Как вообще определить названия этих кнопок, тк в свойствах их нигде нет? Может кто-то вспомнит по ActiveX, но это крайний случай, если не получится с обычными кнопками )) Изменено: IvanSh — 17.02.2014 22:35:37 |
Юрий М Модератор Сообщений: 60390 Контакты см. в профиле |
#2 17.02.2014 22:28:52 В общем случае так:
|
||
IvanSh Пользователь Сообщений: 57 |
Как узнать ИмяВашейКнопки? Это то что на ней в данный момент написано? Если так то вот что выдает: Изменено: IvanSh — 17.02.2014 22:38:42 |
Hugo Пользователь Сообщений: 23137 |
Дайте пример файла с парой кнопок — всем будет проще. |
Юрий М Модератор Сообщений: 60390 Контакты см. в профиле |
#5 17.02.2014 22:53:40
Нет — это разные вещи. См. файл. Прикрепленные файлы
|
||
IvanSh Пользователь Сообщений: 57 |
Юрий, не работает как нужно. Я просто макрос вызываю не той кнопкой, которую переименовываю )) А вот на которую жму она переименовывается. |
IvanSh Пользователь Сообщений: 57 |
#7 17.02.2014 23:11:42
Вот пример, там и задание )) Прикрепленные файлы
|
||
Sanja Пользователь Сообщений: 14837 |
#8 17.02.2014 23:30:10 тупо:
Изменено: Sanja — 17.02.2014 23:34:38 Согласие есть продукт при полном непротивлении сторон. |
||
Юрий М Модератор Сообщений: 60390 Контакты см. в профиле |
Если одна кнопка должна поменять язык на всех остальных, то так (см. файл) |
Как узнать ИмяВашейКнопки? Изменено: Александр Моторин — 18.02.2014 00:19:54 |
|
anvg Пользователь Сообщений: 11878 Excel 2016, 365 |
#11 18.02.2014 05:05:30
Посмотреть свойства Button можно в Object Browser, если включить в его вспомогательном меню Show Hidden Members. И как вариант, в дополнение к решению Юрия М, не обходя все Shape на листе.
Успехов. |
||||
IvanSh Пользователь Сообщений: 57 |
Ребята, спасибо! Это то что нужно ))) щас буду пробовать, но только буду обзывать кнопки не все одинаково, а текст кнопки будет соответствовать значению массива (списка) в соответсвии с цифрой в конце названия кнопки: Button1.Characters.Text = mass[1], Button2.Characters.Text = mass[2] … и тд Хотя судя по всему придется использовать двумерный массив mass[i,j], где i — перевод слова, j -язык Изменено: IvanSh — 18.02.2014 08:26:57 |
IvanSh Пользователь Сообщений: 57 |
#13 18.02.2014 12:38:44 Короче потестил предложенный код: Юрий М спс у Вас все работает, мне нужна была именно строчка:
Алекс Моторин Вам отдельный респект, что указали на мою невнимательность. Теперь переименовал все кнопки и привел в порядок. Anvg, к сожалению Ваш вариант так и не заработал. |
||
Юрий М Модератор Сообщений: 60390 Контакты см. в профиле |
#14 18.02.2014 13:26:14
Эта строчка была у Вас ещё в первом ответе)) |
||||
Александр Моторин Пользователь Сообщений: 958 |
#15 18.02.2014 13:40:41
|
||
IvanSh Пользователь Сообщений: 57 |
#16 18.02.2014 16:10:10 Александр спасибо, за меня сделали код. Только собрался писать, именно это и нужно было реализовать ))) тока табличка с текстом кнопок будет на другом листе. Единственно не понимаю зачем такие усложнения, я сделал проще:
Изменено: IvanSh — 18.02.2014 21:42:42 |
||
IvanSh Пользователь Сообщений: 57 |
#17 18.02.2014 16:11:49
Да, виноват, мне просто в голову не пришло посмотреть в левое окошечко с названием кнопки )) и я долго искал где название кнопки посмотреть. Так сказать идей много, а матчасть на двоечку ) Изменено: IvanSh — 18.02.2014 16:12:23 |
||
Элемент управления пользовательской формы CommandButton, используемый в VBA Excel для запуска процедур и макросов. Свойства кнопки, примеры кода с ней.
UserForm.CommandButton – это элемент управления пользовательской формы, предназначенный исключительно для запуска процедур и макросов VBA Excel.
Для запуска процедур и макросов обычно используется событие кнопки – Click.
Свойства элемента CommandButton
Свойство | Описание |
---|---|
AutoSize | Автоподбор размера кнопки. True – размер автоматически подстраивается под длину введенной надписи (заголовка). False – размер элемента управления определяется свойствами Width и Height. |
BackColor | Цвет элемента управления CommandButton. |
Caption | Надпись (заголовок) – текст, отображаемый на кнопке. |
ControlTipText | Текст всплывающей подсказки при наведении курсора на кнопку. |
Enabled | Возможность взаимодействия пользователя с элементом управления CommandButton. True – взаимодействие включено, False – отключено (цвет надписи становится серым). |
Font | Шрифт, начертание и размер текста надписи. |
Height | Высота элемента управления. |
Left | Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления. |
Picture | Добавление изображения вместо текста заголовка или дополнительно к нему. |
PicturePosition | Выравнивание изображения и текста на кнопке. |
TabIndex | Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0. |
Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления. |
Visible | Видимость элемента управления CommandButton. True – элемент отображается на пользовательской форме, False – скрыт. |
Width | Ширина элемента управления. |
WordWrap | Перенос текста заголовка на новую строку при достижении ее границы. True – перенос включен, False – перенос выключен. |
В таблице перечислены только основные, часто используемые свойства кнопки. Все доступные свойства отображены в окне Properties элемента управления CommandButton.
Пример кнопки с надписью и изображением
Примеры кода VBA Excel с кнопкой
Изначально для реализации примеров на пользовательскую форму UserForm1 добавлена кнопка CommandButton1.
Пример 1
Изменение цвета и надписи кнопки при наведении на нее курсора.
Условие примера 1
- Действия при загрузке формы: замена заголовка формы по умолчанию на «Пример 1», замена надписи кнопки по умолчанию на «Кнопка», запись цвета кнопки по умолчанию в переменную уровня модуля.
- Сделать, чтобы при наведении курсора на кнопку, она изменяла цвет на зеленый, а надпись «Кнопка» менялась на надпись «Нажми!»
- Добавление кода VBA Excel, который будет при удалении курсора с кнопки возвращать ей первоначальные настройки: цвет по умолчанию и надпись «Кнопка».
Решение примера 1
1. Объявляем в разделе Declarations модуля пользовательской формы (в самом начале модуля, до процедур) переменную myColor:
2. Загружаем пользовательскую форму с заданными параметрами:
Private Sub UserForm_Initialize() Me.Caption = «Пример 1» With CommandButton1 myColor = .BackColor .Caption = «Кнопка» End With End Sub |
3. Меняем цвет и надпись кнопки при наведении на нее курсора мыши:
Private Sub CommandButton1_MouseMove(ByVal _ Button As Integer, ByVal Shift As Integer, _ ByVal X As Single, ByVal Y As Single) With CommandButton1 .BackColor = vbGreen .Caption = «Нажми!» End With End Sub |
4. Возвращаем цвет и надпись кнопки при удалении с нее курсора мыши:
Private Sub UserForm_MouseMove(ByVal _ Button As Integer, ByVal Shift As Integer, _ ByVal X As Single, ByVal Y As Single) With CommandButton1 .BackColor = myColor .Caption = «Кнопка» End With End Sub |
Все процедуры размещаются в модуле пользовательской формы. Переменная myColor объявляется на уровне модуля, так как она используется в двух процедурах.
Пример 2
Запуск кода, размещенного внутри процедуры обработки события Click элемента управления CommandButton:
Private Sub CommandButton1_Click() MsgBox «Код внутри обработки события Click» End Sub |
Пример 3
Запуск внешней процедуры из процедуры обработки события Click элемента управления CommandButton.
Внешняя процедура, размещенная в стандартном модуле проекта VBA Excel:
Sub Test() MsgBox «Запуск внешней процедуры» End Sub |
Вызов внешней процедуры из кода обработки события Click
- с ключевым словом Call:
Private Sub CommandButton1_Click() Call Test End Sub |
- без ключевого слова Call:
Private Sub CommandButton1_Click() Test End Sub |
Строки вызова внешней процедуры с ключевым словом Call и без него – равнозначны. На ключевое слово Call можно ориентироваться как на подсказку, которая указывает на то, что эта строка вызывает внешнюю процедуру.
Как уже было сказано во введении, у программных объектов имеются различные свойства. Первое очевидное желание заключается в том, чтобы просмотреть (а затем и изменить) значения свойств объектов. Для просмотра свойств объекта его необходимо сначала выделить в режиме конструктора (щелкнуть на нем мышью), а затем с помощью пиктограммы Свойства (она расположена рядом с пиктограммой Режим конструктора) открыть окно свойств (рис. 1.8).
Рис. 1.8. Окно свойств объекта
В окне свойств отображается таблица набор строк в два столбца. При этом левый столбец отводится для названий свойств, а в нравом расположены значения этих свойств. Понятно, что содержание левого столбца изменить нельзя свойства объекта уже определены его разработчиком (компанией Microsoft). А значения свойств мы поменять можем для этого достаточно щелкнуть в ячейке правого столбца и изменить се содержание.
Если приглядеться к окну на рис. 1.8, то мы увидим, что для ряда свойств возможны только два варианта значений. Например, для свойства Visible (определяет видимость объекта на экране) возможны только значения False и True. Такая ситуация наблюдается и для ряда других свойств. Среди них можно отметить Enabled определяет доступ к объекту в режиме выполнения (если установить для этого свойства значение False и выйти из режима конструктора, то объект будет недоступен). Свойство AutoSize позволяет обеспечить автоматическую подгонку размеров кнопки под размер текста, расположенного на ней. Такое будет происходить, если установить True в качестве значения данного свойства.
Для некоторых других свойств следует устанавливать числовые значения. Так, местоположение и размеры элемента управления определяются следующими свойствами:
- Width ширина;
- Height высота;
- Тор координата верхней границы элемента, начиная от верхней части листа;
- Left координата левой границы элемента, начиная от левой части листа.
Если для свойства Enabled установлено значение False, то элемент управления на экране будет выглядеть более блекло (такая ситуация знакома по работе с различными приложениями, когда ряд разделов меню недоступен).
Рис. 1.9. Палитра цветов
Если теперь в режиме конструктора выбудете перемещать созданную на листе кнопку но экрану и изменять ее размеры (с помощью окружающих ее маркеров), то соответствующие значения в окне свойств будут меняться. И наоборот, изменив значения в окне свойств, вы увидите изменения на экране. Для установки значений ряда свойств следует использовать пиктографические меню. Так, с помощью свойства BackColor можно изменять цвет кнопки. Для этого всего лишь требуется щелчком мыши выбрать необходимый цвет (рис. 1.9). Аналогичное свойство ForeColor определяет цвет текста на кнопке. За надпись на кнопке отвечает другое свойство Caption. Если напротив названия этого свойства ввести текст (рис. 1.10), то мы увидим его и на кнопке.
Рис. 1.10. Установка значения свойства Caption
Для изменения шрифта текста на кнопке имеется свойство Font. Если в окне свойств попытаться изменить его значение, то перед вами откроется знакомое (но работе с различными приложениями) окно для выбора шрифта и размера букв (рис. 1.11). При этом технические действия здесь выполняются с помощью щелчков мышью.
Рис. 1.11. Окно диалога для выбора шрифта надписи на кнопке
Еще одно интересное свойство, Picture, позволяет разместить на кнопке изображение (рис. 1.12) из графического файла. Для этого в качестве значения свойства следует указать имя файла. Это действие производится с помощью стандартного диалогового окна (рис. 1.13), в котором необходимо выбрать один из графических файлов на компьютере либо в сети. В случае, если вы захотите убрать изображение, то в ноле для значения данного свойства следует воспользоваться клавишей Delete.
Во введении уже упоминалось, что основное свойство объекта это имя. В окне свойств оно называется Name. Как мы видели (см. рис. 1.8) на примере создания кнопки, Excel автоматически присвоил ей имя. Имя первой созданной кнопки на рабочем листе по умолчанию CommandButtonl, которое вы при желании можете изменить. Явной необходимости изменения имен, которые присваиваются по умолчанию, нет. Однако очень часто программисты назначают объектам свои имена. Это связано с тем, что к любым объектам на листе мы можем получить доступ из текста программы (фактически требуется обращаться к свойствам и методам этих объектов), указав имя конкретного объекта. В связи с этим с точки зрения организации программного кода часто удобнее использовать свою систему назначения имен объектов.
Рис. 1.12. Размещение на кнопке изображения
Система формирования имен по умолчанию заключается в комбинации типа элемента управления (CommandButton — командная кнопка) и числа (порядкового номера элемента управления данного типа).
Для первой созданной кнопки имя — CommandButton1. Если мы на рабочем листе разместим еще одну кнопку, то она будет иметь имя CommandButton2. При добавлении последующих кнопок данный принцип сохраняется. Если вы все же решитесь изменить имя, то вместо CommandButton1 в окне свойств следует набрать слово или словосочетание, которое вас устраивает. Но заметим, что оно должно быть без пробелов внутри (частая ошибка в первых разработках). В качестве примера подберем новое имя для кнопки — PrimerButton.
Рис. 1.13. Окно диалога для выбора графического файла
Теперь, если вы произвели описанные выше установки (а также убрали изображение очистили значение в свойстве Picture), кнопка будет выглядеть так, как показано на рис. 1.14. Для свойства AutoSize здесь установлено значение True, что позволяет подогнать размеры кнопки под расположенную на ней надпись.
С подобных шагов начинается любая разработка на листе размещаются элементы ActiveX, и ряду их свойств присваиваются необходимые значения. На первый взгляд свойства Name и Caption похожи, и кажется, одно из них является лишним. Однако это не так, и в связи с этим дадим небольшое пояснение. Дело в том, что Name внутреннее название объекта, и значение этого свойства используется на программном уровне (во введении об этом уже шла речь). Если мы хотим использовать в программном коде обращение к свойствам и методам объекта, то в строке программной процедуры необходимо указать имя объекта. Свойство же Caption отвечает просто за надпись на кнопке, и значение его только отображается на экране.
Реально у каждого элемента ActiveX имеется много свойств. Некоторые из них являются общими для большинства (или даже для всех) элементов ActiveX, а другие свойства уникальны для определенных элементов управления.
Рис. 1.14. Установка свойств кнопки
Таким образом, результатом выполненных действий явились создание нового объекта в нашей рабочей книге Microsoft Excel и установка значений для ряда его свойств. Вообще, в режиме конструктора мы размещаем на рабочем листе элементы ActiveX и устанавливаем значения их свойств, а в режиме выполнения работаем с созданными объектами (щелкаем кнопками, вводим текст в текстовые окна и т. д.).
<< Оглавление
Стандартный элемент управления: CommandButton
Что есть CommandButton — это кнопка, управляющая кнопка. При нажатии на кнопку в приложении выполняются определенные, разработчиком, действия. Применяется для выполнения команд и запуска программ.
Является наиболее часто применяемым элементом.
В этой статья я попытаюсь рассмотреть основные свойства, методы и события элемента CommandButton.
На рис 1 и рис 2 представлен внешний вид кнопки на панели элементов управления и на форме.
Рис 1. Изображение CommandButton на панели элементов управления
Рис 2. Изображение CommandButton на форме
Чтобы добавить кнопку на форму, необходимо произвести двойной щелчок по пиктограмме кнопки на панели элементов управления. Либо перетащить элемент CommandButton с панели элементов управления на форму.
После добавления кнопки, она выделяется маркерами для изменения размера. При попытке перетащить кнопку за угловые маркеры будут изменяться, как ширина, так и высота кнопки. Если изменять размер, потянув за другие маркеры, то изменяется соответственно, либо высота, либо ширина.
Изменять размер кнопки можно так же и с помощью клавиатуры.
Для этого необходимо, выделить кнопку, т.е. щелкнуть по кнопке, чтобы появились маркеры. Нажать и удерживать клавишу Shift на клавиатуре, стрелками влево, вправо, вверх и вниз изменять размер элемента CommandButton.
Если же выделить кнопку и удерживая клавишу Ctrl на клавиатуре, стрелками влево, вправо, вверх и вниз, можно изменять место положения кнопки на форме.
Итак, кнопку мы уже расположили на форме, теперь проделаем простую операцию. Произведем двойной щелчок на кнопке и попадем в окно редактирования кода. По умолчанию открывается наиболее часто используемая процедура обработки события Click.
Private Sub Command1_Click() ' Знак апострофа в коде указывает, что это комментарий, в данном случае ' текст выделяется зеленым цветом. Здесь будет располагаться код, который ' произойдет по событию Click элемента CommandButton End Sub
Добавим в процедуру обработки события Click следующее: Command1 и поставим точку, мы увидим весь перечень свойств и методов элемента кнопка (Рис 3). Есть некоторые свойства, которые доступны лишь во время выполнения приложения. Эти свойства не отображаются в окне свойств Visual Basic.
Рис 3. Ниспадающее меню, содержащее методы и свойства элемента CommandButton
Свойства CommandButton
Appearance — объемный вид.
Значения:
- 0 — Flat (плоский);
- 1 — 3D (трехмерный).
BackColor — цвет фона кнопки, можно выбрать из двух вкладок System или Palette. Если цвет выбирается из системной вкладки, то он будет, зависеть от цветовой схемы Windows. В моей статье «Фундамент программы или основные свойства форм» я приводил цветовые константы Visual Basic. Использование констант при задаче цвета удобнее, проще запомнить vbWhite, чем 16777215. Т.е. Const vbWhite = 16777215 (&HFFFFFF) и задавать цвет можно как константой, так и значением &HFFFFFF.
Следовательно, два следующих кода выполнять одно и тоже действие, зададут белый цвет кнопке.
Command1.BackColor = vbWhite Command1.BackColor = &HFFFFFF
Главное не забывать, чтобы изменить цвет необходимо установить свойство Style в Graphical.
Cancel — будет ли кнопка срабатывать по нажатию клавиши Escape. Т.е. кнопка реагирует на все нажатия клавиши Escape на клавиатуре. Только у одной кнопке на форме свойство Cancel, может быть True.
Значения:
- True;
- False.
Пример использования:
Private Sub Command1_Click() End End Sub
По нажатию клавиши Escape выполнится процедура обработки события Click, и приложение завершит работу.
Caption — заголовок кнопки, не путайте со свойством Name, свойство Caption задает текст, который будет отображаться на кнопке. Обычно несет информацию о том, какое действие произойдет после нажатия на кнопку.
Интересным моментом является, возможность, управления кнопкой с помощью клавиши ALT. В имени кнопки следует указать «амперсанд» (&) — «Нажми для &Старта». На кнопке знак амперсанд отображаться не будет, а буква, перед которой он был поставлен, будет подчеркнута. И назначена как горячая, при нажатии ALT + С — произойдет событие Click для кнопки. Не стоит забывать про раскладку клавиатуры.
Рис 4. Изображение кнопки, в имени которой поставлен знак «&».
CausesValidation — это свойство, нужно устанавливать, если вы будете использовать событие Validate, для текстового поля.
Значения:
- True;
- False.
Пример использования:
Private Sub Text1_Validate(Cancel As Boolean) If Not (IsNumeric(Text1.Text)) Then MsgBox "Введите в текстовое поле числа" Cancel = True End If End Sub
В примере Cancel = True возвращает фокус обратно текстовому полю.
Default — когда, свойство установлено в True, кнопка окаймляется черной рамкой и реагирует на все нажатия клавиши Enter на клавиатуре. Только у одной кнопке на форме свойство Default, может быть True.
Значения:
- True;
- False.
DisabledPicture — изображение, которое будет на кнопке, пока она не доступна. Для расположения изображения, необходимо установить свойство Style в Graphical.
DownPicture — изображение, которое будет на кнопке, пока она нажата. Для расположения изображения, необходимо установить свойство Style в Graphical.
DragIcon — значок, который приобретет указатель мыши при нажатии на кнопку и движении курсором. Для работы свойства необходимо установить свойство DragMode в Automatic.
DragMode — определяет режим перетаскивания для объекта.
- 0 — Manual; ручной.
- 1 — Automatic; автоматический.
Enabled — блокировка кнопки. Если вам необходимо ограничить пользователя, т.е., чтобы он дождался выполнения какой либо операции, кнопку можно заблокировать.
Значения:
- True;
- False.
Font — тип шрифта, который будет установлен для текста на кнопке. Выбирается из списка.
FontBold — полужирный шрифт.
Значения:
- True;
- False.
FontItalic — курсив.
Значения:
- True;
- False.
FontName — название шрифта.
FontSize — размер шрифта в пунктах. Максимальное значение 2160.
FontStrikethru — перечеркнутый текст.
Значения:
- True;
- False.
FontUnderline — подчеркнутый текст.
Значения:
- True;
- False.
Height — высота кнопки.
Index — по умолчанию, свойству не присвоено ни какое значение. Используется при создании массивов элементов управления. Принимает значения от 0 и до нужного числа элементов, т.е. если необходимо использовать в массиве 3 кнопки, то свойства Index у кнопок будут 0, 1, 2 соответственно.
Вы спросите, а как использовать массивы элементов управления?
А вот как.
Создаем на форме одну кнопку, задаем свойству Index значение 0. Далее копируем кнопку в буфер и вставляем на форму. Свойство Index у вставленной кнопки будет равно 1. Создадим всего 3 кнопки.
Какие выгоды при использовании массивов элементов управления?
Упрощение написания программного кода, уменьшение объема написанного кода. Плюсов много.
Private Sub Form_Load() Dim i As Byte For i = 0 To 2 Command1(i).Caption = "Кнопка № " & i Command1(i).ToolTipText = "Подсказка для кнопки № " & i Next End Sub
Используя массив, мы в 3 раза уменьшили объем кода. Т.е. мы не стали писать для каждой кнопки отдельный код, а написали один общий для всего массива элементов.
Вы спросите, а как обработать нажатие на кнопку?
Ведь при щелчках на любой из кнопок мы попадаем в код одной и той же процедуры.
Да именно так! Эта процедура обработки нажатий на любую из кнопок массива.
Private Sub Command1_Click(Index As Integer) End Sub
А различаются события для разных элементов по индексам.
Private Sub Command1_Click(Index As Integer) Label1 = "Нажата кнопка № " & Index Label1.ToolTipText = "Подсказка для метки, нажата кнопка № " & Index End Sub
Left — определяет расположение кнопки на форме, от левого края кнопки до левого края формы.
MouseIcon — выбор графического изображения курсора. Выбираем на диске нужный указатель и устанавливаем свойство MousePointer в 99 — Custom, после чего, когда указатель мыши будет перемещаться над кнопкой, он будет принимать выбранный вами вид.
MousePointer — вид указателя мыши. Числовое значение.
Name — имя кнопки. Все обращения и действия с кнопкой производятся с указанием имени. Обычно к имени кнопки добавляют префикс cmd.
OLEDropMode — как объект-приемник обрабатывает операцию перетаскивания.
Значения:
- 0 — None; не обрабатывает.
- 1 — Manual; вручную.
Picture — изображение, которое будет располагаться на кнопке, в обычном состоянии. Для расположения изображения, необходимо установить свойство Style в Graphical.
Style — стиль кнопки.
Значения:
- 0 — Standart; обычный.
- 1 — Graphical; графический.
TabIndex — при добавлении нового элемента управления на форму, элементы получают номер (если они могут получить фокус), от 0 и далее. Если расположить на форме несколько элементов и запустить проект, то по нажатию клавиши Tab фокус будет получать элемента за элементом. При загрузке формы фокус получит элемент, у которого свойство TabIndex = 0. Изменить это можно, если передать фокус нужному элементу при загрузке.
Private Sub Form_Activate() Text1.SetFocus End Sub
TabStop — будет ли фокус перемещаться на кнопку при нажатии клавиши Tab. Некоторые элементы управления не могут получить фокус, об этом не стоит забывать. Не видимые или заблокированные элементы так же не могут получить фокус.
Значения:
- True;
- False.
ToolTipText — всплывающая подсказка, которая будет появляться если задержать указатель мыши над кнопкой.
Top — определяет расположение кнопки на форме, от верхнего края кнопки до верхнего края формы.
Visible — видима ли кнопка на форме.
Значения:
- True;
- False.
Width — ширина кнопки.
Методы CommandButton
Drag — позволяет осуществлять операцию перетаскивания.
Move — позволяет перемещать элемент управления по форме.
Пример использования:
Private Sub Command1_MouseUp _ (Button As Integer, _ Shift As Integer, _ X As Single, _ Y As Single) Command1.Move X + 100, Y + 100 End Sub
SetFocus — используется для передачи фокуса необходимой кнопке.
ZOrder — с помощью метода, можно определить порядок перекрытия объектов на форме.
Пример использования:
На форме расположите элемент PictureBox и три кнопки. На первую кнопку положите сверху PictureBox и загрузить любую картинку, чтобы кнопку не было видно, в режиме редактирования кода.
Private Sub Command2_Click() Command1.ZOrder 0 End Sub Private Sub Command3_Click() Command1.ZOrder 1 End Sub
По нажатию кнопок 2 и 3, по очереди, кнопка, то появляется, то исчезает. Она не становится не видимой, просто меняется ее местоположение, над картинкой и под картинкой. Аналогичное действие можно совершить и в режиме редактирования кода. Расположите картинку так, чтобы она перекрывал кнопку, нажмите правую кнопку мыши на любом из этих элементов. И при помощи Send to Back и Bring to Front измените расположение объекта.
События CommandButton
Click — наиболее часто используемое событие. Происходит при нажатии на кнопку. Если кнопка имеет фокус, событие происходит по нажатию клавиши «Пробел» на клавиатуре. Если свойства Default и Cancel установлены в True, то соответственно событие происходит, по нажатию клавиш Enter и Escape.
GotFocus — происходит когда кнопка получает фокус, при нажатии клавиши Tab или с помощью метода SetFocus.
KeyDown — происходит, когда кнопка имеет фокус и пользователь нажимает клавишу на клавиатуре.
KeyPress — происходит, когда пользователь нажал и отпустил клавишу, можно получить код нажатой клавиши.
Пример использования:
Private Sub Command1_KeyPress(KeyAscii As Integer) Label1 = KeyAscii End Sub
KeyUp — происходит, когда кнопка имеет фокус и пользователь отпускает клавишу на клавиатуре.
LostFocus — происходит во время передачи фокуса от кнопки к другому элементу.
MouseDown — происходит во время нажатия кнопки мыши на кнопке.
MouseMove — происходит при перемещении указателя мыши над кнопкой.
MouseUp — происходит лишь тогда, когда пользователь после нажатия, отпускает клавишу мыши. Лучше использовать вместо события Click, т.к. после нажатия пользователь может передумать и захочет отменить действие.
События MouseDown, MouseMove и MouseUp имеют одинаковые параметры:
Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Button — содержит номер клавиши мыши.
Константы:
Const vbLeftButton = 1 Const vbMiddleButton = 4 Const vbRightButton = 2
Пример использования:
If Button = 1 Then Text1 = _ "Ты нажал левую кнопку мыши" If Button = 4 Then Text1 = _ "Ты нажал среднюю кнопку мыши" If Button = 2 Then Text1 = _ "Ты нажал правую кнопку мыши"
Shift — содержит информацию о состоянии клавиш ALT, CTRL и SHIFT.
Константы:
Const vbAltMask = 4 Const vbCtrlMask = 2 Const vbShiftMask = 1
Пример использования:
If Shift = vbShiftMask Then Text1 = _ "Ты нажал кнопку мыши, удерживая Shift" If Shift = vbAltMask Then Text1 = _ "Ты нажал кнопку мыши, удерживая Alt" If Shift = vbCtrlMask Then Text1 = _ "Ты нажал кнопку мыши, удерживая Ctrl" If (Shift And (vbCtrlMask Or vbShiftMask)) _ = (vbCtrlMask Or vbShiftMask) Then Text1 = _ "Ты нажал кнопку мыши, удерживая Ctrl и Shift"
X, Y — координаты указателя мыши, где произошло событие.
Данная статья не является учебным пособием или полным руководством к использованию — это обзор наиболее часто используемых свойств, событий и методов элемента управления CommandButton . Статья рассчитана на начальный уровень знания программирования на языке Visual Basic 6.
Оглавление