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 olayı çalışma zamanında bir olay işleyicisi ile ilişkilendirir.
Sözdizimi
AddHandler event, {AddressOf eventhandler | expression }
Parçalar
| Bölüm | Açıklama |
|---|---|
event |
İşlenmek üzere olayın adı. |
eventhandler |
Olayı işleyen bir yordamın adı. |
expression |
Olayı işleyen lambda ifadesi. |
ve AddressOf eventhandler bölümleri expression birbirini dışlar.
Açıklamalar
AddHandler ve RemoveHandler deyimleri, program yürütme sırasında istediğiniz zaman olay işlemeyi başlatmanıza ve durdurmanıza olanak tanır.
Yeni olay işleyicisinin imzası ( eventhandler yordam veya expression lambda) olayın eventimzası ile eşleşmelidir.
Handles anahtar sözcüğü ve AddHandler deyimi, belirli yordamların belirli olayları işlemesini belirtmenize olanak sağlar, ancak farklılıklar vardır. deyimi AddHandler , yordamları çalışma zamanındaki olaylara bağlar. Belirli bir olayı işlediğini Handles belirtmek için bir yordam tanımlarken anahtar sözcüğünü kullanın. Daha fazla bilgi için bkz. Tanıtıcılar.
Açık lambda ile eklenen bir işleyici daha sonra kaldırılamaz (kullanılarak RemoveHandler). Gerçekten de, lambdaya bir ad verilmezse, daha sonra başvurmak mümkün değildir. Ancak lambda'yı bir değişkene atamak ve işleyiciyi bu değişken aracılığıyla eklemek, bu değişkeni kullanarak işleyiciyi kaldırmaya olanak tanır.
Uyarı
Özel olaylar için deyimi olayın AddHandlerAddHandler erişimcisini çağırır. Özel olaylar hakkında daha fazla bilgi için bkz. Olay Deyimi.
Örnek
Aşağıdaki örnekte, veri bağlama senaryoları için temsilcilerle ConvertEventHandler nasıl kullanılacağı AddHandler gösterilmektedir. Bu örnekte, olay işleyicilerinin bir nesneye Format eklendiği ve Parse ondalık değerler ile para birimi dizeleri arasında dönüştürülecek olayları gösteren pratik bir Binding kullanım örneği gösterilmektedir.
Public Class DataBindingExample
Private textBox1 As TextBox
Private ds As DataSet
Public Sub New()
textBox1 = New TextBox()
ds = New DataSet()
SetupSampleData()
BindControlWithAddHandler()
End Sub
Private Sub SetupSampleData()
Dim table As New DataTable("Orders")
table.Columns.Add("OrderAmount", GetType(Decimal))
table.Rows.Add(123.45D)
table.Rows.Add(67.89D)
ds.Tables.Add(table)
End Sub
Private Sub BindControlWithAddHandler()
Dim binding As New Binding("Text", ds, "Orders.OrderAmount")
' Use AddHandler to associate ConvertEventHandler delegates
AddHandler binding.Format, AddressOf DecimalToCurrency
AddHandler binding.Parse, AddressOf CurrencyToDecimal
textBox1.DataBindings.Add(binding)
End Sub
Private Sub DecimalToCurrency(ByVal sender As Object, ByVal e As ConvertEventArgs)
If e.DesiredType IsNot GetType(String) Then
Return
End If
e.Value = CDec(e.Value).ToString("c")
End Sub
Private Sub CurrencyToDecimal(ByVal sender As Object, ByVal e As ConvertEventArgs)
If e.DesiredType IsNot GetType(Decimal) Then
Return
End If
e.Value = Convert.ToDecimal(e.Value.ToString())
End Sub
End Class
' Simple example for basic AddHandler usage
Sub TestBasicEvents()
Dim Obj As New Class1
AddHandler Obj.Ev_Event, AddressOf EventHandler
Obj.CauseSomeEvent()
RemoveHandler Obj.Ev_Event, AddressOf EventHandler
Obj.CauseSomeEvent()
' Lambda expression example
AddHandler Obj.Ev_Event, Sub ()
MsgBox("Lambda caught event.")
End Sub
Obj.CauseSomeEvent()
End Sub
Sub EventHandler()
MsgBox("EventHandler caught event.")
End Sub
Public Class Class1
Public Event Ev_Event()
Sub CauseSomeEvent()
RaiseEvent Ev_Event()
End Sub
End Class
Bu örnek şunları gösterir:
- Veri bağlama için nesne
Bindingoluşturma. - ve
Parseolaylarına temsilci eklemekConvertEventHandleriçinFormatkullanmaAddHandler. - Ondalık ve para birimi dizesi biçimleri arasında dönüşüm sağlayan olay işleyicisi yöntemleri uygulama.
- Özel olaylar ve lambda ifadeleriyle temel
AddHandlerkullanım.