Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir sınıf, form veya belge içinde modül düzeyinde bildirilen bir olayı tetikler.
Sözdizimi
RaiseEvent eventname[( argumentlist )]
Parçalar
eventname
Gerekli. Tetikleme olayının adı.
argumentlist
Opsiyonel. Değişkenlerin, dizilerin veya ifadelerin virgülle ayrılmış listesi. Bağımsız argumentlist değişken parantez içine alınmalıdır. Bağımsız değişken yoksa parantezlerin atlanması gerekir.
Açıklamalar
Gerekli eventname , modülde bildirilen bir olayın adıdır. Visual Basic değişken adlandırma kurallarına uyar.
Olay, oluşturulduğu modülde bildirilmemişse bir hata oluşur. Aşağıdaki kod parçası bir olay bildirimini ve olayın oluşturulduğu yordamı gösterir.
' Declare an event at module level.
Event LogonCompleted(ByVal UserName As String)
Sub Logon(ByVal UserName As String)
' Raise the event.
RaiseEvent LogonCompleted(UserName)
End Sub
Modülde açıkça bildirilmeyen olayları tetikleme amacıyla kullanamazsınız RaiseEvent . Örneğin, tüm formlar bir Click olayı öğesinden System.Windows.Forms.Formdevralır ve türetilmiş bir biçimde kullanılarak RaiseEvent yükseltilemez. Form modülünde bir Click olay bildirirseniz, formun kendi Click olayını gölgeler. Yine de yöntemini çağırarak formun ClickOnClick olayını çağırabilirsiniz.
Varsayılan olarak, Visual Basic'te tanımlanan bir olay, olay işleyicilerini bağlantıların kurulma sırasına göre yükseltir. Olayların parametreleri olabileceği ByRef için, geç bağlanan bir işlem önceki bir olay işleyicisi tarafından değiştirilmiş parametreleri alabilir. Olay işleyicileri yürütüldükten sonra, olayı tetikleyen alt yordama denetim döndürülür.
Uyarı
Paylaşılmayan olaylar, bildirildikleri sınıfın oluşturucusunda tetiklenmemelidir. Bu tür olaylar çalışma zamanı hatalarına neden olmasa da, ilişkili olay işleyicileri tarafından yakalanamayabilir. Oluşturucudan Shared olay oluşturmanız gerekiyorsa paylaşılan bir olay oluşturmak için değiştiriciyi kullanın.
Uyarı
Özel bir olay tanımlayarak olayların varsayılan davranışını değiştirebilirsiniz. Özel olaylar için deyimi olayın RaiseEventRaiseEvent erişimcisini çağırır. Özel olaylar hakkında daha fazla bilgi için bkz. Olay Deyimi.
Örnek 1
Aşağıdaki örnek, 10 ile 0 saniyeleri saymak için olayları kullanır. Kod, deyimi dahil olmak üzere olayla ilgili yöntemlerin, özelliklerin ve deyimlerin birkaçını RaiseEvent gösterir.
Olay oluşturan sınıfı olay kaynağıdır ve olayı işleyen yöntemler olay işleyicileridir. Bir olay kaynağı, oluşturduğu olaylar için birden çok işleyiciye sahip olabilir. Sınıf olayı yükselttiğinde, bu olay nesnenin bu örneği için olayları işlemeyi seçen her sınıfta oluşturulur.
Örnek, 10 ila 0 saniye arasında sayan ve konsoldaki ilerleme durumunu görüntüleyen bir zamanlayıcı gösterir. Geri sayım tamamlandığında "Bitti" görüntülenir.
Zamanlayıcıdaki olayları işlemek için sınıfınızda bir WithEvents değişken bildirin:
Public Class TimerExample
Private WithEvents mTimer As TimerState
Örnek 2
Olay işleyicilerini ve zamanlayıcı mantığını uygulamak için aşağıdaki kodu ekleyin. Bu örnekte zamanlayıcı güncelleştirildiğinde veya tamamlandığında olay işleyicilerini bilgilendirmek için deyiminin nasıl kullanılacağı RaiseEvent gösterilmektedir.
Public Sub StartCountdownExample()
mTimer = New TimerState()
mTimer.StartCountdown(10.0, 1.0)
End Sub
Private Sub mTimer_UpdateTime(ByVal Countdown As Double) Handles mTimer.UpdateTime
Console.WriteLine("Time remaining: " & Format(Countdown, "##0.0") & " seconds")
End Sub
Private Sub mTimer_Finished() Handles mTimer.Finished
Console.WriteLine("Done")
End Sub
End Class
Public Class TimerState
Public Event UpdateTime(ByVal Countdown As Double)
Public Event Finished()
Public Sub StartCountdown(ByVal Duration As Double,
ByVal Increment As Double)
Dim SoFar As Double = 0
Do While SoFar < Duration
System.Threading.Thread.Sleep(CInt(Increment * 1000))
SoFar += Increment
RaiseEvent UpdateTime(Duration - SoFar)
Loop
RaiseEvent Finished()
End Sub
End Class
Yukarıdaki örneği çalıştırdığınızda, saniyeleri 10'dan 0'a kadar saymaya başlar ve konsoldaki ilerlemeyi görüntüler. Tam süre (10 saniye) sona erdiğinde " Bitti" görüntülenir.