比如說這樣添加的計時器:
創(chuàng)新互聯(lián)公司是一家專業(yè)提供蕭縣企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、HTML5、小程序制作等業(yè)務(wù)。10年已為蕭縣眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。
Dim Timer1 As New Timer
你要在合適的地方開始,比如窗體Load事件中,這樣:
Timer1.Interval = 1000 '單位毫秒,1000毫秒=1秒
Timer1.Enabled = True '啟用計時器
然后在代碼窗口上方下拉列表里選擇Timer1的Tick事件,自動添加代碼:
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
End Sub
這是計時器觸發(fā)的事件,每秒觸發(fā)一次,在這里面輸入循環(huán)判斷是否有日程即可。提示:你可以用Now對象獲取當前的日期和時間。
名稱
說明
Activated
當使用代碼激活或用戶激活窗體時發(fā)生。
AutoSizeChanged
當?AutoSize?屬性更改時發(fā)生。
AutoValidateChanged
當?AutoValidate?屬性更改時發(fā)生。
BackColorChanged
當?BackColor?屬性的值更改時發(fā)生。(從?Control?繼承。)
BackgroundImageChanged
當?BackgroundImage?屬性的值更改時發(fā)生。(從?Control?繼承。)
BackgroundImageLayoutChanged
當?BackgroundImageLayout?屬性更改時發(fā)生。(從?Control?繼承。)
BindingContextChanged
當?BindingContext?屬性的值更改時發(fā)生。(從?Control?繼承。)
CausesValidationChanged
當?CausesValidation?屬性的值更改時發(fā)生。(從?Control?繼承。)
ChangeUICues
焦點或鍵盤用戶界面 (UI) 提示更改時發(fā)生。(從?Control?繼承。)
Click
在單擊控件時發(fā)生。(從?Control?繼承。)
ClientSizeChanged
當?ClientSize?屬性的值更改時發(fā)生。(從?Control?繼承。)
Closed
關(guān)閉窗體時發(fā)生。
Closing
關(guān)閉窗體時發(fā)生。
ContextMenuChanged
當?ContextMenu?屬性的值更改時發(fā)生。(從?Control?繼承。)
ContextMenuStripChanged
當?ContextMenuStrip?屬性的值更改時發(fā)生。(從?Control?繼承。)
ControlAdded
在將新控件添加到?Control.ControlCollection?時發(fā)生。(從?Control?繼承。)
ControlRemoved
在從?Control.ControlCollection?移除控件時發(fā)生。(從?Control?繼承。)
CursorChanged
當?Cursor?屬性的值更改時發(fā)生。(從?Control?繼承。)
Deactivate
當窗體失去焦點并不再是活動窗體時發(fā)生。
Disposed
當通過調(diào)用?Dispose?方法釋放組件時發(fā)生。(從?Component?繼承。)
DockChanged
當?Dock?屬性的值更改時發(fā)生。(從?Control?繼承。)
DoubleClick
在雙擊控件時發(fā)生。(從?Control?繼承。)
DragDrop
拖放操作完成時發(fā)生。(從?Control?繼承。)
DragEnter
在將對象拖入控件的邊界時發(fā)生。(從?Control?繼承。)
DragLeave
將對象拖出控件的邊界時發(fā)生。(從?Control?繼承。)
DragOver
在將對象拖到控件的邊界上發(fā)生。(從?Control?繼承。)
EnabledChanged
在?Enabled?屬性值更改后發(fā)生。(從?Control?繼承。)
Enter
進入控件時發(fā)生。(從?Control?繼承。)
FontChanged
在?Font?屬性值更改時發(fā)生。(從?Control?繼承。)
ForeColorChanged
在?ForeColor?屬性值更改時發(fā)生。(從?Control?繼承。)
FormClosed
關(guān)閉窗體后發(fā)生。
FormClosing
關(guān)閉窗體前發(fā)生。
GiveFeedback
在執(zhí)行拖動操作期間發(fā)生。(從?Control?繼承。)
GotFocus
在控件接收焦點時發(fā)生。(從?Control?繼承。)
HandleCreated
在為控件創(chuàng)建句柄時發(fā)生。(從?Control?繼承。)
HandleDestroyed
在控件的句柄處于銷毀過程中時發(fā)生。(從?Control?繼承。)
HelpButtonClicked
單擊“幫助”按鈕時發(fā)生。
HelpRequested
用戶請求控件幫助時發(fā)生。(從?Control?繼承。)
ImeModeChanged
在?ImeMode?屬性更改后發(fā)生。(從?Control?繼承。)
InputLanguageChanged
更改窗體的輸入語言后發(fā)生。
InputLanguageChanging
當用戶嘗試更改窗體的輸入語言時發(fā)生。
Invalidated
控件的顯示要求重新繪制時發(fā)生。(從?Control?繼承。)
KeyDown
在控件有焦點的情況下按下鍵時發(fā)生。(從?Control?繼承。)
KeyPress
在控件有焦點的情況下字符、空格或退格鍵時發(fā)生。(從?Control?繼承。)
KeyUp
在控件有焦點的情況下釋放鍵時發(fā)生。(從?Control?繼承。)
Layout
在控件應(yīng)重新定位其子控件時發(fā)生。(從?Control?繼承。)
Leave
在輸入焦點離開控件時發(fā)生。(從?Control?繼承。)
Load
在第一次顯示窗體前發(fā)生。
LocationChanged
在?Location?屬性值更改后發(fā)生。(從?Control?繼承。)
LostFocus
在控件失去焦點時發(fā)生。(從?Control?繼承。)
MarginChanged
當?Margin?屬性更改時發(fā)生。
MaximizedBoundsChanged
在?MaximizedBounds?屬性的值更改后發(fā)生。
MaximumSizeChanged
在?MaximumSize?屬性的值更改后發(fā)生。
MdiChildActivate
在多文檔界面 (MDI) 應(yīng)用程序內(nèi)激活或關(guān)閉 MDI 子窗體時發(fā)生。
MenuComplete
當窗體菜單失去焦點時發(fā)生。
MenuStart
當窗體菜單接收焦點時發(fā)生。
MinimumSizeChanged
在?MinimumSize?屬性的值更改后發(fā)生。
MouseCaptureChanged
當控件失去鼠標捕獲時發(fā)生。(從?Control?繼承。)
MouseClick
用鼠標單擊控件時發(fā)生。(從?Control?繼承。)
MouseDoubleClick
用鼠標雙擊控件時發(fā)生。(從?Control?繼承。)
MouseDown
當鼠標指針位于控件上并按下鼠標鍵時發(fā)生。(從?Control?繼承。)
MouseEnter
在鼠標指針進入控件時發(fā)生。(從?Control?繼承。)
MouseHover
在鼠標指針停放在控件上時發(fā)生。(從?Control?繼承。)
MouseLeave
在鼠標指針離開控件時發(fā)生。(從?Control?繼承。)
MouseMove
在鼠標指針移到控件上時發(fā)生。(從?Control?繼承。)
MouseUp
在鼠標指針在控件上并釋放鼠標鍵時發(fā)生。(從?Control?繼承。)
MouseWheel
在控件有焦點且鼠標輪移動時發(fā)生。(從?Control?繼承。)
Move
在移動控件時發(fā)生。(從?Control?繼承。)
PaddingChanged
在控件空白區(qū)更改時發(fā)生。(從?Control?繼承。)
Paint
在重繪控件時發(fā)生。(從?Control?繼承。)
ParentChanged
在?Parent?屬性值更改時發(fā)生。(從?Control?繼承。)
PreviewKeyDown
在焦點位于此控件上的情況下,當有按鍵動作時發(fā)生(在?KeyDown?事件之前發(fā)生)。(從Control?繼承。)
QueryAccessibilityHelp
在?AccessibleObject?為輔助功能應(yīng)用程序提供幫助時發(fā)生。(從?Control?繼承。)
QueryContinueDrag
在拖放操作期間發(fā)生,并且允許拖動源確定是否應(yīng)取消拖放操作。(從?Control?繼承。)
RegionChanged
當?Region?屬性的值更改時發(fā)生。(從?Control?繼承。)
Resize
在調(diào)整控件大小時發(fā)生。(從?Control?繼承。)
ResizeBegin
窗體進入大小調(diào)整模式時發(fā)生。
ResizeEnd
窗體退出大小調(diào)整模式時發(fā)生。
RightToLeftChanged
在?RightToLeft?屬性值更改時發(fā)生。(從?Control?繼承。)
RightToLeftLayoutChanged
更改?RightToLeftLayout?屬性值之后發(fā)生。
Scroll
用戶或代碼滾動工作區(qū)時發(fā)生。(從?ScrollableControl?繼承。)
Shown
只要窗體是首次顯示就發(fā)生。
SizeChanged
在?Size?屬性值更改時發(fā)生。(從?Control?繼承。)
StyleChanged
在控件樣式更改時發(fā)生。(從?Control?繼承。)
SystemColorsChanged
系統(tǒng)顏色更改時發(fā)生。(從?Control?繼承。)
TabIndexChanged
此 API 支持 產(chǎn)品 基礎(chǔ)結(jié)構(gòu),不能在代碼中直接使用。?當?TabIndex?屬性的值更改時發(fā)生。
TabStopChanged
當?TabStop?屬性更改時發(fā)生。
TextChanged
在?Text?屬性值更改時發(fā)生。(從?Control?繼承。)
Validated
在控件完成驗證時發(fā)生。(從?Control?繼承。)
Validating
在控件驗證時發(fā)生。(從?Control?繼承。)
VisibleChanged
在?Visible?屬性值更改時發(fā)生。(從?Control?繼承。)
一委托:此示例演示如何將方法與委托關(guān)聯(lián)然后通過委托調(diào)用該方法。
創(chuàng)建委托和匹配過程
創(chuàng)建一個名為 MySubDelegate 的委托。
Delegate Sub MySubDelegate(ByVal x As Integer)
聲明一個類,該類包含與該委托具有相同簽名的方法。
Class class1
Sub Sub1(ByVal x As Integer)
MsgBox("The value of x is: " CStr(x))
End Sub
End Class
定義一個方法,該方法創(chuàng)建該委托的實例并通過調(diào)用內(nèi)置的 Invoke 方法調(diào)用與該委托關(guān)聯(lián)的方法。
Protected Sub DelegateTest()
Dim c1 As New class1
' Create an instance of the delegate.
Dim msd As MySubDelegate = AddressOf c1.Sub1
' Call the method.
msd.Invoke(10)
End Sub
二、事件
下面的示例程序闡釋如何在一個類中引發(fā)一個事件,然后在另一個類中處理該事件。AlarmClock 類定義公共事件 Alarm,并提供引發(fā)該事件的方法。AlarmEventArgs 類派生自 EventArgs,并定義 Alarm 事件特定的數(shù)據(jù)。WakeMeUp 類定義處理 Alarm 事件的 AlarmRang 方法。AlarmDriver 類一起使用類,將使用 WakeMeUp 的 AlarmRang 方法設(shè)置為處理 AlarmClock 的 Alarm 事件。
該示例程序使用事件和委托和引發(fā)事件中詳細說明的概念。
示例
' EventSample.vb.
'
Option Explicit
Option Strict
Imports System
Imports System.ComponentModel
Imports Microsoft.VisualBasic
Namespace EventSample
' Class that contains the data for
' the alarm event. Derives from System.EventArgs.
'
Public Class AlarmEventArgs
Inherits EventArgs
Private _snoozePressed As Boolean
Private nrings As Integer
'Constructor.
'
Public Sub New(snoozePressed As Boolean, nrings As Integer)
Me._snoozePressed = snoozePressed
Me.nrings = nrings
End Sub
' The NumRings property returns the number of rings
' that the alarm clock has sounded when the alarm event
' is generated.
'
Public ReadOnly Property NumRings() As Integer
Get
Return nrings
End Get
End Property
' The SnoozePressed property indicates whether the snooze
' button is pressed on the alarm when the alarm event is generated.
'
Public ReadOnly Property SnoozePressed() As Boolean
Get
Return _snoozePressed
End Get
End Property
' The AlarmText property that contains the wake-up message.
'
Public ReadOnly Property AlarmText() As String
Get
If _snoozePressed Then
Return "Wake Up!!! Snooze time is over."
Else
Return "Wake Up!"
End If
End Get
End Property
End Class
' Delegate declaration.
'
Public Delegate Sub AlarmEventHandler(sender As Object, _
e As AlarmEventArgs)
' The Alarm class that raises the alarm event.
'
Public Class AlarmClock
Private _snoozePressed As Boolean = False
Private nrings As Integer = 0
Private stopFlag As Boolean = False
' The Stop property indicates whether the
' alarm should be turned off.
'
Public Property [Stop]() As Boolean
Get
Return stopFlag
End Get
Set
stopFlag = value
End Set
End Property
' The SnoozePressed property indicates whether the snooze
' button is pressed on the alarm when the alarm event is generated.
'
Public Property SnoozePressed() As Boolean
Get
Return _snoozePressed
End Get
Set
_snoozePressed = value
End Set
End Property
' The event member that is of type AlarmEventHandler.
'
Public Event Alarm As AlarmEventHandler
' The protected OnAlarm method raises the event by invoking
' the delegates. The sender is always this, the current instance
' of the class.
'
Protected Overridable Sub OnAlarm(e As AlarmEventArgs)
RaiseEvent Alarm(Me, e)
End Sub
' This alarm clock does not have
' a user interface.
' To simulate the alarm mechanism it has a loop
' that raises the alarm event at every iteration
' with a time delay of 300 milliseconds,
' if snooze is not pressed. If snooze is pressed,
' the time delay is 1000 milliseconds.
'
Public Sub Start()
Do
nrings += 1
If stopFlag Then
Exit Do
Else
If _snoozePressed Then
System.Threading.Thread.Sleep(1000)
If (True) Then
Dim e As New AlarmEventArgs(_snoozePressed, nrings)
OnAlarm(e)
End If
Else
System.Threading.Thread.Sleep(300)
Dim e As New AlarmEventArgs(_snoozePressed, nrings)
OnAlarm(e)
End If
End If
Loop
End Sub
End Class
' The WakeMeUp class has a method AlarmRang that handles the
' alarm event.
'
Public Class WakeMeUp
Public Sub AlarmRang(sender As Object, e As AlarmEventArgs)
Console.WriteLine((e.AlarmText + ControlChars.Cr))
If Not e.SnoozePressed Then
If e.NumRings Mod 10 = 0 Then
Console.WriteLine(" Let alarm ring? Enter Y")
Console.WriteLine(" Press Snooze? Enter N")
Console.WriteLine(" Stop Alarm? Enter Q")
Dim input As String = Console.ReadLine()
If input.Equals("Y") Or input.Equals("y") Then
Return
Else
If input.Equals("N") Or input.Equals("n") Then
CType(sender, AlarmClock).SnoozePressed = True
Return
Else
CType(sender, AlarmClock).Stop = True
Return
End If
End If
End If
Else
Console.WriteLine(" Let alarm ring? Enter Y")
Console.WriteLine(" Stop Alarm? Enter Q")
Dim input As String = Console.ReadLine()
If input.Equals("Y") Or input.Equals("y") Then
Return
Else
CType(sender, AlarmClock).Stop = True
Return
End If
End If
End Sub
End Class
' The driver class that hooks up the event handling method of
' WakeMeUp to the alarm event of an Alarm object using a delegate.
' In a forms-based application, the driver class is the
' form.
'
Public Class AlarmDriver
Public Shared Sub Main()
' Instantiates the event receiver.
Dim w As New WakeMeUp()
' Instantiates the event source.
Dim clock As New AlarmClock()
' Wires the AlarmRang method to the Alarm event.
AddHandler clock.Alarm, AddressOf w.AlarmRang
clock.Start()
End Sub
End Class
End Namespace