Event Deyimi
Kullanıcı tanımlı olay bildirir.
[ <attrlist> ] [ accessmodifier ] _
[ Shared ] [ Shadows ] Event eventname[(parameterlist)] _
[ Implements implementslist ]
' -or-
[ <attrlist> ] [ accessmodifier ] _
[ Shared ] [ Shadows ] Event eventname As delegatename _
[ Implements implementslist ]
' -or-
[ <attrlist> ] [ accessmodifier ] _
[ Shared ] [ Shadows ] Custom Event eventname As delegatename _
[ Implements implementslist ]
[ <attrlist> ] AddHandler(ByVal value As delegatename)
[ statements ]
End AddHandler
[ <attrlist> ] RemoveHandler(ByVal value As delegatename)
[ statements ]
End RemoveHandler
[ <attrlist> ] RaiseEvent(delegatesignature)
[ statements ]
End RaiseEvent
End Event
Bölümleri
Parça |
Description |
||||||
attrlist |
İsteğe Bağlı.Bu olay için geçerli öznitelikler listesi.Birden çok öznitelik virgülle ayrılır.İçine almalısınız Öznitelik Listesi (Visual Basic) köşeli parantez içinde ("<"ve">"). |
||||||
accessmodifier |
İsteğe Bağlı.Hangi kodu olay erişebileceklerini belirtir.Aşağıdakilerden biri olabilir:
Belirtebileceğiniz Protected Friend olay sınıfı, türetilmiş bir sınıf veya aynı derlemenin kodundan erişimini etkinleştirmek için. |
||||||
Shared |
İsteğe Bağlı.Bu olay bir sınıf veya yapı belirli bir örneğiyle ilişkili olmadığını belirtir. |
||||||
Shadows |
İsteğe Bağlı.Bu olay redeclares ve aynı adlı programlama öğesi veya bir taban sınıftaki aşırı yüklü öğeleri kümesi gizler gösterir.Her türlü ile bildirilen öðeyi, her türlü gölge. Gölgeli bir öğesi, dışında gölgeleme öğesine erişilemez olduğu gelen gölgeleri türetilmiş bir sınıf içinde kullanılamaz.Örneğin, bir Private öğesi gölgeleri bir temel sınıf öğesi erişim iznine sahip değil kod Private öðeye eriþilir temel sınıf öğesi yerine. |
||||||
eventname |
Gerekli.Olay adı; değişken adlandırma kurallarına uyar. |
||||||
parameterlist |
İsteğe Bağlı.Bu olay parametreleri temsil eden yerel değişkenler listesi.İçine almalısınız Parametre Listesi (Visual Basic) parantez içinde. |
||||||
Implements |
İsteğe Bağlı.Bu olay bir olay, bir arabirimi uygulayan gösterir. |
||||||
implementslist |
Gerekli ise Implements sağlanır.Liste, Sub yordamları uygulanmakta.Birden çok yordamları virgüllerle ayrılır: implementedprocedure [, implementedprocedure ...] Her implementedprocedure aşağıdaki sözdizimi ve bölümleri vardır: interface.definedname
|
||||||
Custom |
Gerekli.Olayları bildirilen olarak Custom özel tanımlamanız gerekir AddHandler, RemoveHandler, ve RaiseEvent erişimcileri. |
||||||
delegatename |
İsteğe Bağlı.Olay işleyicisi imzayı belirtir bir temsilci adı. |
||||||
AddHandler |
Gerekli.Bildirir bir AddHandler bir olay işleyicisi eklendiğinde yürütmek için ifadeleri belirtir, ya da açıkça kullanarak erişen AddHandler deyimi veya dolaylı olarak kullanarak Handles yan tümcesi. |
||||||
End AddHandler |
Gerekli.Sona AddHandler blok. |
||||||
value |
Gerekli.Parametre adı. |
||||||
RemoveHandler |
Gerekli.Bildirir bir RemoveHandler belirten bir olay işleyicisi kullanarak kaldırıldığında yürütmek için ifadeleri erişimci RemoveHandler ifadesi. |
||||||
End RemoveHandler |
Gerekli.Sona RemoveHandler blok. |
||||||
RaiseEvent |
Gerekli.Bildirir bir RaiseEvent ifadeleri kullanarak olay oluştuğunda çalıştırılacak belirtir erişimci RaiseEvent ifadesi.Genellikle, bu Temsilciler tarafından tutulan listesini başlatır AddHandler ve RemoveHandler erişimcileri. |
||||||
End RaiseEvent |
Gerekli.Sona RaiseEvent blok. |
||||||
delegatesignature |
Gerekli.Gerekli parametrelerle eşleşen parametre listesi delegatename temsilcisi.İçine almalısınız Parametre Listesi (Visual Basic) parantez içinde. |
||||||
statements |
İsteğe Bağlı.Gövdeleri içeren deyimleri AddHandler, RemoveHandler, ve RaiseEvent yöntemleri. |
||||||
End Event |
Gerekli.Sona Event blok. |
Notlar
Olayın bildirimi yapılmadı sonra RaiseEvent olayı oluşturmak için ifade.Tipik bir olay bildirilen ve aşağıdaki parçaları içinde gösterildiği gibi oluşturulur:
Public Class EventSource
' Declare an event.
Public Event LogonCompleted(ByVal UserName As String)
Sub CauseEvent()
' Raise an event on successful logon.
RaiseEvent LogonCompleted("AustinSteele")
End Sub
End Class
[!NOT]
Yordamlar, aşağıdaki istisnalar bağımsız değişkenleri gibi olay bağımsız değişkenleri bildirebilirsiniz: olayları, bağımsız adlı olamaz ParamArray bağımsız değişkeni veya Optional bağımsız değişkenleri.Olayların dönüş değerleri yoktur.
Bir olayı işlemek için onu kullanarak bir olay işleyicisi altyordam ilişkilendirmeniz gerekir Handles veya AddHandler ifadesi.Altyordam ve olay imzalarını eşleşmesi gerekir.Paylaşılan bir olayý iþlemek için kullanmanız gerekir AddHandler ifadesi.
Kullanabileceğiniz Event modül düzeyinde.Yani bildiriminin içerik olay sınıfı, yapı, modül veya arabirim olmalıdır ve kaynak dosya, ad, yordam veya bloğu olamaz.Daha fazla bilgi için bkz. Bildirim Bağlamları ve Varsayılan Erişim Düzeyleri (Visual Basic).
Çoğu durumlarda, olayları bildirmek için bu konu sözdizimi bölümünde ilk sözdizimini kullanabilirsiniz.Ancak, bazı senaryolarda olayın ayrıntılı davranışı üzerinde daha fazla denetim yüklü olmasını gerektirir.Son sözdizimi kullanır Bu konu sözdizimi bölümünde Custom anahtar sözcüğü, özel olaylar tanımlamanıza olanak sağlayarak bu denetim sağlar.Özel bir olay tam olarak ne kod ekler ya da bir olay işleyicisi kaldırır veya olaydan oluşur veya ne zaman kodu olayı oluşturan belirtin.Örnekler için, bkz. Nasıl yapılır: Bellekten Kazanacak Şekilde Özel Olayları Bildirme (Visual Basic) ve Nasıl yapılır: Engellemekten Kaçınacak Şekilde Özel Olayları Bildirme (Visual Basic).
Örnek
Aşağıdaki örnek, 10'dan 0 saniye aşağı saymak olaylarýný kullanýr.Kod birkaç ifadeleri olayla ilgili yöntemleri ve özellikleri göstermektedir.Bu RaiseEvent ifadesi.
Bir olayı başlatan olay kaynağı sınıftır ve olay işleme yöntemlerini olay işleyicileridir.Birden çok işleyicileri, olaylar için olay kaynağı olabilir.Olay sınıfı harekete geçiren, o olay nesnesinin bu örnek için olayları işlemek için seçti her sınıf oluşturuldu.
Örnek bir form da kullanır (Form1) bir düğme ile (Button1) ve metin kutusunu (TextBox1).Düğmeyi tıklattığınızda, 10'dan geri sayım 0 saniye için ilk metin kutusunu görüntüler.Tam gün (10 saniye) geçtiğinde "Bitti" birinci metin kutusu görüntüler.
Kodu Form1 formun ilk ve terminal durumlarını belirtir.Bu olaylar oluştuğunda yürütülen kod içerir.
Bu örneği kullanmak için yeni bir Windows Forms projesi açın.Adlı bir düğme eklemek Button1 ve adlı bir metin kutusu TextBox1 ana forma adlı Form1.Formu sağ tıklatın ve tıklatın sonra View Code kod düzenleyicisini açın.
Ekleme bir WithEvents Tanımlamalar bölümünde değişken Form1 sınıfı:
Private WithEvents mText As TimerState
Koda aşağıdaki kodu ekleyip Form1.Bulunabilecek, gibi herhangi bir yinelenen yordamları yerine Form_Load veya Button_Click.
Private Sub Form1_Load() Handles MyBase.Load
Button1.Text = "Start"
mText = New TimerState
End Sub
Private Sub Button1_Click() Handles Button1.Click
mText.StartCountdown(10.0, 0.1)
End Sub
Private Sub mText_ChangeText() Handles mText.Finished
TextBox1.Text = "Done"
End Sub
Private Sub mText_UpdateTime(ByVal Countdown As Double
) Handles mText.UpdateTime
TextBox1.Text = Format(Countdown, "##0.0")
' Use DoEvents to allow the display to refresh.
My.Application.DoEvents()
End Sub
Class TimerState
Public Event UpdateTime(ByVal Countdown As Double)
Public Event Finished()
Public Sub StartCountdown(ByVal Duration As Double,
ByVal Increment As Double)
Dim Start As Double = DateAndTime.Timer
Dim ElapsedTime As Double = 0
Dim SoFar As Double = 0
Do While ElapsedTime < Duration
If ElapsedTime > SoFar + Increment Then
SoFar += Increment
RaiseEvent UpdateTime(Duration - SoFar)
End If
ElapsedTime = DateAndTime.Timer - Start
Loop
RaiseEvent Finished()
End Sub
End Class
Önceki örneği çalıştırın ve etiketli düğmeyi tıklatın için F5 tuşuna Start.İlk metin kutusunu saniye saymak başlar.Tam gün (10 saniye) geçtiğinde "Bitti" birinci metin kutusu görüntüler.
[!NOT]
My.Application.DoEvents Yöntemi işleme olayları formu mu aynı şekilde.Doğrudan olayları işlemek için formunu etkinleştirmek için kullanabileceğiniz çoklu kullanım.Daha fazla bilgi için bkz. İş Parçacığı Oluşturma (C# ve Visual Basic).
Ayrıca bkz.
Görevler
Nasıl yapılır: Bellekten Kazanacak Şekilde Özel Olayları Bildirme (Visual Basic)
Nasıl yapılır: Engellemekten Kaçınacak Şekilde Özel Olayları Bildirme (Visual Basic)
Başvuru
Handles Tümcesi (Visual Basic)