Event Óï¾ä


ʾÀý

¶¨ÒåÓû§×Ô¶¨ÒåµÄʼþ¡£

Óï·¨

[Public] Event procedurename [(arglist)]

Event Óï¾ä°üº¬ÏÂÃæ²¿·Ö£º

²¿·Ö ÃèÊö
Public ¿ÉÑ¡µÄ¡£Ö¸¶¨¸Ã Event ÔÚÕû¸ö¹¤³ÌÖж¼ÊǿɼûµÄ¡£È±Ê¡Çé¿öÏ Events ÀàÐÍÊÇ Public¡£Ó¦×¢Ò⣬ʼþÖ»ÄÜÔÚËùÉùÃ÷µÄÄ£¿éÖвúÉú¡£
procedurename ±ØÐèµÄ¡£Ê¼þµÄÃû³Æ£»×ñÑ­±ê×¼µÄ±äÁ¿ÃüÃûÔ¼¶¨¡£

arglist ²ÎÊýµÄÓï·¨¼°Óï·¨µÄ¸÷¸ö²¿·ÖÈçÏ£º

[ByVal | ByRef] varname[( )] [As type]

²¿·Ö ÃèÊö
ByVal ¿ÉÑ¡µÄ¡£±íʾ¸Ã²ÎÊýÊǰ´Öµ´«µÝµÄ¡£
ByRef ¿ÉÑ¡µÄ¡£±íʾ¸Ã²ÎÊýÊǰ´µØÖ·´«µÝµÄ¡£ByRef ÊÇ Visual Basic µÄȱʡÉèÖá£
varname ±ØÐèµÄ¡£´ú±íÒª´«µÝ¸ø¹ý³ÌµÄ²ÎÊý±äÁ¿µÄÃû³Æ£»×ñÑ­±ê×¼µÄ±äÁ¿ÃüÃûÔ¼¶¨¡£
type ¿ÉÑ¡µÄ¡£Ö¸´«µÝ¸ø¹ý³ÌµÄ²ÎÊýµÄÊý¾ÝÀàÐÍ£»¿ÉÒÔÊÇ Byte¡¢²¼¶û¡¢Integer¡¢Long¡¢Currency¡¢Single¡¢Double¡¢Decimal£¨Ä¿Ç°Éв»Ö§³Ö£©¡¢Date¡¢String£¨Ö»Ö§³Ö±ä³¤£©¡¢Object¡¢Variant¡¢Óû§¶¨ÒåÀàÐÍ»ò¶ÔÏóÀàÐÍ¡£

˵Ã÷

ʼþ±»ÉùÃ÷Ö®ºó£¬¾Í¿ÉÒÔʹÓà RaiseEvent Óï¾äÀ´²úÉú¸Ãʼþ¡£Èç¹ûÔÚ±ê׼ģ¿éÖгöÏÖ Event ÉùÃ÷£¬¾Í»á²úÉúÓï·¨´íÎó¡£²»ÄÜÉùÃ÷´ø·µ»ØÖµµÄʼþ¡£ÔÚÏÂÃæµÄ´úÂë¶ÎÖУ¬¸ø³öÁËÉùÃ÷ʼþºÍ²úÉúʼþµÄµäÐÍʼþ£º

'ÔÚÀàÄ£¿éµÄÄ£¿é¼¶ÖÐÉùÃ÷Ò»¸öʼþEvent LogonCompleted (UserName as String)Sub
   RaiseEvent LogonCompleted("AntoineJan")
End Sub

×¢Òâ ¿ÉÒÔÏóÉùÃ÷¹ý³ÌµÄ²ÎÊýÒ»ÑùÀ´ÉùÃ÷ʼþµÄ²ÎÊý£¬µ«ÓÐÒÔϲ»Í¬£ºÊ¼þ²»ÄÜÓдøÃüÃû²ÎÊý¡¢Optional ²ÎÊý¡¢»òÕß ParamArray ²ÎÊý¡£Ê¼þûÓзµ»ØÖµ¡£


¡¡

Event Óï¾äʾÀý

ÏÂÃæµÄʾÀýÊÇÔÚ°ÙÃ×ÈüÅÜÑÝʾÖÐʹÓÃʼþÀ´¼ÆÊ±¡£´úÂë˵Ã÷ÁËËùÓÐÓëʼþÏà¹ØµÄ·½·¨¡¢ÊôÐÔºÍÓï¾ä£¬°üÀ¨ Event Óï¾ä¡£

²úÉúʼþµÄÀàÊÇʼþÔ´£¬ÊµÏÖ¸ÃʼþµÄÀàÔòÊÇʼþÎüÊÕ¡£Ò»¸öʼþÔ´¿ÉÒÔÓжà¸öÕë¶ÔÆäËù²úÉúµÄʼþµÄ©¡£Ê¼þ¿ÉÒÔ±»Ã¿¸öÑ¡¶¨³öΪ¶ÔÏóµÄʵÀýÎüÊÕʼþµÄÀàËù´¥·¢¡£

¸ÃʾÀýʹÓÃÁËÒ»¸ö´°Ìå (Form1)£¬¸Ã´°ÌåÓÐÒ»¸ö°´Å¥ (Command1)£¬Ò»¸ö±êÇ© (Label1)£¬ÒÔ¼°Á½¸öÎı¾¿ò (Text1 ºÍ Text2)¡£µ¥»÷°´Å¥ºó£¬µÚÒ»¸öÎı¾¿òÏÔʾ "From Now"£¬µÚ¶þ¸öÎı¾¿òÖÐʱÖÓ¿ªÊ¼¼ÆÊ±¡£µ±¾­¹ý 9.84 Ã루°ÙÃ׼Ǽ£©Ö®ºó£¬µÚÒ»¸öÎı¾¿òÏÔʾ "Until Now"£¬µÚ¶þ¸öÔòÏÔʾ "9.84"¡£

Form1 ´úÂëÓÃÓÚÖ¸¶¨¸Ã´°ÌåµÄ³õʼ״̬ºÍÖÕֹ״̬£¬Ò²°üº¬ÁËʼþ²úÉúºóËùÒªÖ´ÐеĴúÂë¡£

Option ExplicitPrivate WithEvents mText As TimerStatePrivate Sub Command1_Click()
Text1.Text = "From Now"
    Text1.Refresh
    Text2.Text = "0"
    Text2.Refresh
Call mText.TimerTask(9.84)
End SubPrivate Sub Form_Load()
    Command1.Caption = "Click to Start Timer"
    Text1.Text = ""
    Text2.Text = ""
    Label1.Caption = "The fastest 100 meter run took this long:"
    Set mText = New TimerState
    End SubPrivate Sub mText_ChangeText()
    Text1.Text = "Until Now"
    Text2.Text = "9.84"
End SubPrivate Sub mText_UpdateTime(ByVal dblJump As Double)
    Text2.Text = Str(Format(dblJump, "0"))
    DoEvents
End Sub

ÏÂÃæÊÇ TimerState ÀàÄ£¿éµÄ´úÂ롣ʼþ²úÉúºó Event Óï¾äÉùÃ÷±»³õʼ»¯µÄ¹ý³Ì¡£

Option Explicit
Public Event UpdateTime(ByVal dblJump As Double)
Public Event ChangeText()Public Sub TimerTask(ByVal Duration As Double)
    Dim dblStart As Double
    Dim dblSecond As Double
    Dim dblSoFar As Double
    dblStart = Timer
    dblSoFar = dblStart
    
    Do While Timer < dblStart + Duration
        If Timer - dblSoFar >= 1 Then
            dblSoFar = dblSoFar + 1
            RaiseEvent UpdateTime(Timer - dblStart)
        End If
    Loop
    
    RaiseEvent ChangeText
    
End Sub

¡¡

Ïà¹Ø»ù´¡ÖªÊ¶£º

¡¡

¹¤³Ì

Ä£¿éµÄ¼¯ºÏ¡£

¡¡

Ä£¿é

Ò»×éÉùÃ÷¼¯ºÏ£¬ÆäºóΪ¹ý³Ì¡£

¡¡

²ÎÊý

´«µÝ¸øÒ»¸ö¹ý³ÌµÄ³£Êý¡¢±äÁ¿»ò±í´ïʽ¡£

¡¡

°´Öµ

Ò»ÖÖ½«²ÎÊýÖµ¶ø²»Êǽ«µØÖ·´«µÝ¸ø¹ý³ÌµÄ·½Ê½£¬Õâ¾Íʹ¹ý³Ì·ÃÎʵ½±äÁ¿µÄ¸´±¾¡£½á¹û£¬¹ý³Ì²»¿É¸Ä±ä±äÁ¿µÄÕæÕýÖµ¡£

¡¡

°´µØÖ·

Ò»ÖÖ½«²ÎÊýµØÖ·¶ø²»Êǽ«Öµ´«µÝ¸ø¹ý³ÌµÄ·½Ê½£¬Õâ¾Íʹ¹ý³Ì·ÃÎʵ½Êµ¼ÊµÄ±äÁ¿¡£½á¹û£¬¹ý³Ì¿É¸Ä±ä±äÁ¿µÄÕæÕýÖµ¡£³ý·ÇÁí×÷˵Ã÷£¬·ñÔò°´µØÖ·´«µÝ²ÎÊý¡£

¡¡

¹ý³Ì

ÃüÃûµÄÓï¾äÐòÁУ¬¿É×÷Ϊµ¥ÔªÀ´Ö´ÐС£ÀýÈ磬Function¡¢PropertyºÍ Sub ¶¼Êǹý³ÌÀàÐÍ¡£×ÜÊÇÔÚÄ£¿é¼¶±ð¶¨Òå¹ý³ÌµÄÃû³Æ£¬ËùÓпÉÖ´ÐеĴúÂë±ØÐë°üº¬ÔÚ¹ý³ÌÄÚ£¬Ò»¹ý³Ì²»ÄÜÌ×ÔÚÆäËü¹ý³ÌÖС£

¡¡

Êý¾ÝÀàÐÍ

±äÁ¿µÄÌØÐÔ£¬ÓÃÀ´¾ö¶¨¿É±£´æºÎÖÖÊý¾Ý¡£Êý¾ÝÀàÐͰüÀ¨ Byte¡¢Boolean¡¢Integer¡¢Long¡¢Currency¡¢Decimal¡¢Single¡¢Double¡¢Date¡¢String¡¢Object¡¢Variant ( ĬÈÏ ) ºÍÓû§¶¨ÒåÀàÐ͵ȡ£

¡¡

Byte Êý¾ÝÀàÐÍ

Ò»ÖÖ·¶Î§ÎªÕýÕûÐÍ 0¨C255 µÄÊý¾ÝÀàÐÍ£¬ÒÔµ¥¾«¶ÈÀ´´æ´¢£¬¼´ÎÞ·ûºÅµÄ 8 λ (1 ¸ö×Ö½Ú) Êý×Ö¡£

¡¡

Boolean Êý¾ÝÀàÐÍ

Ö»ÓÐÁ½ÖÖÖµµÄÊý¾ÝÀàÐÍ£¬ÕâÁ½ÖÖÖµ·Ö±ðΪ True(-1) »ò False(0)¡£²¼¶û±äÁ¿ÊÇÒÔ 16 λ ( 2 ×Ö½Ú ) Êý×Ö´æ´¢µÄ¡£

¡¡

Integer Êý¾ÝÀàÐÍ

Ò»ÖÖÊý¾ÝÀàÐÍ£¬½«ÕûÐͱäÁ¿×÷Ϊ 2 ×Ö½ÚÕûÊý´æ´¢ÆðÀ´£¬·¶Î§ÊÇ -32,768 µ½ 32,767 Ö®¼äµÄÊý×Ö¡£Integer Êý¾ÝÀàÐÍÒ²¿É±íʾÁоÙÖµ¡£ÔÚ Visual Basic ¿ÉÓðٷֱȷûºÅ (%) µÄÀàÐÍÉùÃ÷×Ö·ûÀ´±íʾһ¸ö Integer¡£

¡¡

Long Êý¾ÝÀàÐÍ

 4 ×Ö½ÚµÄÕûÐÍÖµ£¬È¡Öµ·¶Î§´Ó -2,147,483,648 µ½ 2,147,483,647¡£ÔÚ Visual BasicÖпÉÓ÷ûºÅ (&) µÄÀàÐÍÉùÃ÷×Ö·ûÀ´±íʾ Long¡£

¡¡

Currency Êý¾ÝÀàÐÍ

·¶Î§´Ó -922,337,203,685,477.5808µ½ 922,337,203,685,477.5807 µÄÊý¾ÝÀàÐÍ¡£ÓÿÉÓÃÕâÒ»Êý¾ÝÀàÐÍÀ´×ö²ÆÎñÔËËãºÍ¾«È·¶ÈÒªÇó¸ßµÄÔËËã¡£ÔÚ Visual Basic ¿ÉÓà @ ÉùÃ÷×Ö·ûÀ´±íʾ Currency¡£

¡¡

Single Êý¾ÝÀàÐÍ

Êý¾ÝÀàÐÍ£¬½«µ¥¾«¶È¸¡µã±äÁ¿´æ´¢Îª 32 λ (4 ×Ö½Ú) ¸¡µãÊý£¬¶ÔÓÚ¸ºÊý£¬Æä·¶Î§Îª -3.402823E38 µ½ -1.401298E-45£»¶ÔÓÚÕýÊý£¬Æä·¶Î§Îª 1.401298E-45 µ½ 3.402823E38¡£ÔÚ Visual Basic ÖпÉÓÃÀàÐÍÉùÃ÷×Ö·û (!) ±íʾ Single¡£

¡¡

Double Êý¾ÝÀàÐÍ

±£´æË«¾«¶ÈµÄ 64 λ¸¡µãÊýµÄÊý¾ÝÀàÐÍ¡£¶ÔÓÚ¸ºÊý£¬Æä·¶Î§Îª -1.79769313486232E308 µ½ -4.94065645841247E-324£»¶ÔÓÚÕýÊý£¬Æä·¶Î§Îª 4.94065645841247E-324 µ½ 1.79769313486232E308¡£ÔÚ Visual BasicÖУ¬Êý×Ö·ûºÅ (#) Ϊ±íʾ Double µÄÀàÐÍÉùÃ÷×Ö·û¡£

¡¡

Decimal Êý¾ÝÀàÐÍ

°üº¬Ð¡ÊýÊýÖµµÄÊý¾ÝÀàÐÍ¡£¶ÔÓÚûÓÐСÊýµãµÄÊý×Ö£¬Æä·¶Î§ÊÇ +/-79,228,162,514,264,337,593,543,950,335¡£¶ÔÓÚÓÐ 28 ¸öСÊýλµÄÊý¶øÑÔ£¬Æä·¶Î§ÊÇ +/-7.9228162514264337593543950335¡£Decimal µÄ×îС·ÇÁãÊýÖµ¿É±íʾΪ 0.0000000000000000000000000001¡£

×¢Ò⣬´Ëʱ Decimal Êý¾ÝÀàÐÍÖ»¿ÉÒÔÔÚ Variant ÄÚʹÓᣲ»Äܽ«±äÁ¿ÉùÃ÷Ϊ Decimal ÀàÐÍ¡£µ«ÊÇ£¬¿É´´½¨Ò»¸ö Variant £¬Æä×ÓÀàÐÍΪʹÓà Cdec º¯ÊýµÄ Decimal¡£

¡¡

Date Êý¾ÝÀàÐÍ

½«ÈÕÆÚºÍʱ¼äµ±×÷ʵÊýÀ´´æ´¢µÄÊý¾ÝÀàÐÍ¡£ÒÔ 64 λ (8 ¸ö×Ö½Ú) Êý×ÖÀ´´æ´¢Date ±äÁ¿¡£Ð¡Êýµã×ó·½ÎªÈÕÆÚ£¬Ð¡ÊýµãÓÒ·½ÎªÊ±¼ä¡£

¡¡

String Êý¾ÝÀàÐÍ

°üº¬Ò»Á¬´®×Ö·ûµÄÊý¾ÝÀàÐÍ£¬¶øÇÒËüÃDZíʾ×Ö·û±¾Éí£¬¶ø²»±íʾËüÃǵÄÊýÖµ¡£×Ö·û´®¿ÉÒÔ°üÀ¨×Öĸ¡¢Êý×Ö¡¢¿Õ°×ºÍ±êµã·ûºÅ¡£String Êý¾ÝÀàÐÍ¿ÉÒÔ´æ´¢´Ó 0 µ½ 63K ¹Ì¶¨³¤¶ÈµÄ×Ö·û´®£¬Ò²¿É´æ´¢´Ó 0 µ½Ô¼ 2 Õ××Ö·û³¤¶ÈµÄ¶¯Ì¬×Ö·û´®¡£ÔÚ Visual Basic ÖпÉÓ÷ûºÅ ($) µÄÀàÐÍÉùÃ÷×Ö·ûÀ´±íʾһ×Ö·û´®

¡¡

Variant Êý¾ÝÀàÐÍ

Ò»ÖÖÌØÊâµÄÊý¾ÝÀàÐÍ£¬¿ÉÒÔ°üº¬ÊýÖµ¡¢×Ö·û´®»òÈÕÆÚÊý¾Ý£¬»¹°üº¬×Ô¶¨ÒåÀàÐͺÍÌØÊâÊýÖµ Empty ºÍ Null¡£Variant Êý¾ÝÀàÐÍÓÐ 16 ×Ö½ÚµÄÊýÖµ´æ´¢´óС£¬¿ÉÒÔ°üº¬µÄÊý¾Ý¿É´ï Decimal µÄ·¶Î§£¬»ò 22- ×Ö½Ú( ¼ÓÉÏ×Ö·û´®³¤¶È ) µÄ×Ö·û´æ´¢´óС£¬¶øÇÒ¿É´æ´¢ÈκÎ×Ö·ûÎı¾¡£VarType º¯Êý¶¨ÒåÁËÈçºÎ´¦Àí Variant ÖеÄÊý¾Ý¡£¶ÔËùÓбäÁ¿£¬Èç¹ûûÓÐÃ÷È·ÉùÃ÷ËüÃÇÊÇÆäËüÊý¾ÝÀàÐÍ£¬ÔòËüÃǶ¼±ä³É Variant Êý¾ÝÀàÐÍ¡£

¡¡

Óû§¶¨ÒåÀàÐÍ

Óà Type Óï¾ä¶¨ÒåµÄÊý¾ÝÀàÐÍ¡£Óû§¶¨ÒåµÄÊý¾ÝÀàÐͿɰüº¬Ò»¸ö»ò¶à¸öÈÎÒâÊý¾ÝÀàÐ͵ÄÔªËØ¡£Óà Dim Óï¾ä´´½¨Óû§¶¨ÒåµÄÊý×éºÍÆäËüÊý¾ÝÀàÐÍ¡£Óû§¶¨ÒåÀàÐͿɰüÀ¨ÈκÎÀàÐ͵ÄÊý×é¡£

¡¡

±ê׼ģ¿é

Ö»°üº¬¹ý³Ì¡¢ÀàÐÍÒÔ¼°Êý¾ÝµÄÉùÃ÷ºÍ¶¨ÒåµÄÄ£¿é¡£ÔÚ±ê׼ģ¿éÖУ¬Ä£¿é¼¶±ðÉùÃ÷ºÍ¶¨Òå¶¼±»Ä¬ÈÏΪ Public¡£ÔÚ Visual Basic µÄÔçÆÚ°æ±¾Öн«±ê׼ģ¿é¿´×÷´úÂëÄ£¿é¡£