每一個物件都會有它與使用者互動的動作,如用被滑鼠點一下、被鍵盤按一下、被滑鼠游標滑過......等等等動作,這些動作就稱為事件。我們寫一段程式來捕捉表單(Form1)物件的事件,了解有哪些事件?何時發生?
双按Form1後進入程式碼編輯畫面如右圖
點選閣下感興趣的事件,並在該事件程序內將事件名稱顯示在Label物件上,為求生動,利用亂數Rnd()變更顯示位置。\
Public
Class Form1 Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ClickLabel1.Top = Rnd() *
Me.HeightLabel1.Left = Rnd() *
Me.WidthLabel1.Text =
"Click事件發生了!" End SubPrivate Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Label1.Top = Rnd() *
Me.HeightLabel1.Left = Rnd() *
Me.WidthLabel1.Text = Chr(e.KeyCode) +
"鍵a被Q按o了F!" End SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Top = Rnd() *
Me.HeightLabel1.Left = Rnd() *
Me.WidthLabel1.Text =
"Load事件發生了" End SubPrivate Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
Label1.Top = Rnd() *
Me.HeightLabel1.Left = Rnd() *
Me.WidthLabel1.Text =
"MouseDown事 件發生了" End SubPrivate Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
Label1.Top = Rnd() *
Me.HeightLabel1.Left = Rnd() *
Me.WidthLabel1.Text =
"MouseMove事 件發生了" End SubPrivate Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
Label1.Top = Rnd() *
Me.HeightLabel1.Left = Rnd() *
Me.WidthLabel1.Text =
"Resize事件發生了" End SubPrivate Sub Form1_ResizeEnd(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ResizeEnd
Label1.Top = Rnd() *
Me.HeightLabel1.Left = Rnd() *
Me.WidthLabel1.Text =
"ResizeEnd事 件發生了" End SubEnd
Class
<試看看>
把所有的Label1.Text 改成Debug.Print, 在即時運算視窗中觀看
用變數來串接事件
Public Class Form1
Dim strEvent As String '在這宣告一個字串變數儲存發生的事件訊息
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
strEvent = strEvent & "Click事件發生了" & vbNewLine
Label1.Text = strEvent
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
strEvent = strEvent & Chr(e.KeyCode) +
"鍵被按了" & vbNewLineTextBox1.Text = strEvent
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
strEvent = strEvent +
"Load事件發生了" & vbNewLineLabel1.Text = strEvent
End Sub