VB.NET'te olay işleyici yöntemlerini bir olayla ilişkilendirmenin iki farklı yolu vardır.
Birincisi, olay işleyicisi yönteminin tanımının sonuna eklediğiniz Handles
anahtar sözcüğünü kullanmayı içerir. Örneğin:
Zaten ayrı zaten olay işleyicisi yöntemlerini tarif var ettiyseniz
Sub ftpClient_UploadProgressChanged(sender As Object, e As UploadProgressChangedLibArgs) Handles ftpClient.UploadProgressChanged
' ...
End Sub
Sub ftpClient_UploadFileCompleted(sender As Object, e As UploadFileCompletedEventLibArgs) Handles ftpClient.UploadFileCompleted
' ...
End Sub
İlk yöntem çok daha basit (yani, bir lambda sözdizimi kullanmıyorsanız). Mümkün olduğunda bunu tavsiye ederim.
İkincisi, C# +=
ifadesinin AddHandler
ifadesinin açık kullanımını içerir. Olay işleyicileri dinamik olarak, örneğin, ilişkilendirmek istediğinizde kullanmanız gereken budur. onları çalışma zamanında değiştirmeniz gerekiyorsa. Yani kod, dönüştürülen anlamıyla bu şekilde görünecektir:
Dim ftpClient As New FtpClient()
AddHandler ftpClient.UploadProgressChanged, AddressOf ftpClient_UploadProgressChanged
AddHandler ftpClient.UploadFileCompleted, AddressOf ftpClient_UploadFileCompleted
Dediğin gibi, ben Developer Fusion's converter aracılığıyla kod çalıştıran çalıştı ve onlar geçersiz VB.NET kodunu döndürerek olduğunu görünce şaşırdı:
' WRONG CODE!
Dim ftpClient As New FtpClient()
ftpClient.UploadProgressChanged += New EventHandler(Of UploadProgressChangedLibArgs)(ftpClient_UploadProgressChanged)
ftpClient.UploadFileCompleted += New EventHandler(Of UploadFileCompletedEventLibArgs)(ftpClient_UploadFileCompleted)
Oy vermek için oy verebilecek olan a known bug budur!
Çok teşekkürler! kapsamlı cevap ve çok açık! :) – sharkyenergy
Şimdi bu hatayı alıyorum, bu ne anlama geliyor? teşekkürler 'Hata Tutamak, içerme türünde veya taban türlerinden birinde tanımlanan bir WithEvents değişkeni gerektirir. ' – sharkyenergy
@Justme Nesne değişkeni tarafından yükseltilen olayları işlemesine neden olmak için yordam bildiriminin sonunda Tutamaçlar anahtar sözcüğünü kullanın. ** WithEvents ** anahtar sözcüğünü kullanarak bildirildi. http://msdn.microsoft.com/library/vstudio/6k46st1y – Chris