Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
512244_74984_sidorov_m_e_algoritmizaciya_i_prog....doc
Скачиваний:
24
Добавлен:
01.05.2019
Размер:
5 Мб
Скачать
☆

События формы

Событие

Происходит

Initialize

при инициализации формы, но до ее загрузки.

Load

после инициализации формы, но до ее отображения на экран.

Unload

перед закрытием формы. Возвращает параметр Cansel для подтверждения закрытия формы. По умолчаниию Cansel=0 - закрыть;

QueryUnload

перед событием Unload, для подтверждения закрытия формы.

Terminate

при закрытии формы.

Click, DblClick

при щелчке и двойном щелчке в форме.

MouseDown, MouseUp

при нажатии и отпускании кнопки мыши.

KeyPress

после ввода символа на клавиатуре

Key Down, KeyUp

при нажатии и отпускании клавиши на клавиатуре.

Activate, Deactivate

при активизации и деактивизации формы.

Resize

при изменении размеров формы.

GotFocus, LostFocus

при получении и потере фокуса

События Form_Activate, Form_Deactivate, Form_LostFocus и Form_GotFocus происходят при перемещении между окнами одного приложения. При перемещении между окнами разных приложений эти события не происходят. Если на форме есть другие объекты, способные получать фокус (кнопки, списки, поля ввода и т.п.), то события Form_GotFocus не происходит, а фокус получает один из этих объектов.

Напомним, что окно редактора кода Code открывается командой меню View, Code, либо двойным щелчком на элементе управления или на форме. В последнем случае, в окне редактора кода готов шаблон процедуры обработки события "по умолчанию".

Пример.

Private Sub Form_Initialize()

AutoRedraw = True

KeyPreview = True

Picture=LoadPicture("C:\Program Files\Microsoft Visual Studio\" _

& "Common\Graphics\Bitmaps\Gauge\Circlock.bmp")

PaintPicture Me.Picture, Width / 20, Height / 20, 2000, 2000

End Sub

Рис. 20. Редактор кода

Рис. 21. Рисование на форме

Обработка событий мыши

Процедуры событий Click, DblClick не имеют параметров, а процедуры событий MouseDown, MouseMove и MouseUp имеют параметры Button и Shift.

Параметр

Возвращает

Button

целое число, обозначающее нажатую кнопку мыши. Допустимые значения:

1- VbLeftButton - левая кнопка;

2 - VbRightButton - правая кнопка;

4 - VbMiddleButton - средняя кнопка (не работает).

Shift

целое число, обозначающее нажатую клавишу клавиатуры. Допустимые значения:

1 - VbShiftMask - клавиша Shift;

2 - VbCtrlMask - клавиша Ctrl;

4 - VbAltMask - клавиша Alt.

X и Y

положение указателя мыши в координатах формы.

Событие нажатие кнопки мышки MouseDown возникает сразу после нажатия на кнопку мыши когда указатель находиться на объекте. Пример обработчика события.

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single)

If Button = VbLeftButton Then

MousePointer = VbCustom 'указатель мыши по выбору

Mouselcon = LoadPicture("...\Cursors\pencil.cur")

End If

End Sub

Событие перемещение указателя мышки MouseMove возникает когда указатель перемещается над объектом, при этом кнопка мыши необязательно должна быть нажата. Пример.

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _ X As Single,Y As Single)

If Button = VbLeftButton Then ' нажата левая кнопка мыши

PSet(X, Y) 'ставим точку

End If

End Sub

Событие отпускание кнопки мышки MouseUp возникает сразу после отжатия кнопки мыши когда указатель находиться на объекте. Пример.

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, _

X As Single, Y As Single)

If Button = VbLeftButton Then

MousePointer = VbDefault 'указатель мыши по умолчанию

End If

If Button = vbRightButton Then Cls

End Sub

При написании кода обработки событий необходимо учитывать следующее.

При щелчке кнопки мыши происходит три события в следующей последовательности: MouseDown, MouseUp, Click.

При двойном щелчке кнопки мыши происходит пять событий в следующей последовательности: MouseDown, MouseUp, Click, DblClick, MouseUp.

Событие DblClick "два в одном" происходит после второго щелчка левой кнопки мыши когда указатель находиться на объекте. Например, событие первый щелчок выделяет строку и делает ее текущей в списке List1, второй позволяет выполнить код события – DblClick.

Private Sub List1_DblClick()

List2.AddItem List1.Text 'добавить строку в список List2

List1.RemoveItem List1.ListIndex 'удалить строку из списка List1

end Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]