वीबी.नेट में किसी ईवेंट के साथ ईवेंट हैंडलर विधियों को जोड़ने के दो अलग-अलग तरीके हैं।
पहले में Handles
कीवर्ड का उपयोग शामिल है, जिसे आप ईवेंट हैंडलर विधि की परिभाषा के अंत में जोड़ते हैं। उदाहरण के लिए:
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
पहली विधि है, तो आप पहले से ही अलग से वैसे भी ईवेंट हैंडलर तरीकों परिभाषित किया गया गया है बहुत सरल है (यानी, आप एक लैम्ब्डा सिंटैक्स का उपयोग नहीं कर रहे हैं)। जब भी संभव हो मैं इसकी सिफारिश करता हूं।
दूसरे में AddHandler
कथन का स्पष्ट उपयोग शामिल है, जैसे सी # में +=
। यदि आप इवेंट हैंडलर गतिशील रूप से, उदाहरण के लिए संबद्ध करना चाहते हैं, तो यह वह है जिसे आप उपयोग करने की आवश्यकता है। अगर आपको उन्हें रन टाइम पर बदलना है। तो अपने कोड, सचमुच परिवर्तित, इस प्रकार दिखाई देगा:
Dim ftpClient As New FtpClient()
AddHandler ftpClient.UploadProgressChanged, AddressOf ftpClient_UploadProgressChanged
AddHandler ftpClient.UploadFileCompleted, AddressOf ftpClient_UploadFileCompleted
जैसे तुमने कहा, मैं Developer Fusion's converter के माध्यम से अपने कोड चलाने की कोशिश की और यह देखने के लिए कि वे अवैध VB.NET कोड लौट रहे थे हैरान था:
' WRONG CODE!
Dim ftpClient As New FtpClient()
ftpClient.UploadProgressChanged += New EventHandler(Of UploadProgressChangedLibArgs)(ftpClient_UploadProgressChanged)
ftpClient.UploadFileCompleted += New EventHandler(Of UploadFileCompletedEventLibArgs)(ftpClient_UploadFileCompleted)
बाहर निकलता है, यह a known bug है जो कि मतदान के लायक हो सकता है!
स्रोत
2013-07-07 10:13:14
आपको बहुत बहुत धन्यवाद! संपूर्ण उत्तर और बहुत स्पष्ट! :) – sharkyenergy
मुझे अब यह त्रुटि मिल रही है, इसका क्या अर्थ है? धन्यवाद 'त्रुटि हैंडल क्लॉज के साथ युक्त प्रकार या उसके मूल प्रकारों में से एक परिभाषित वैरिएबल चर की आवश्यकता होती है। – sharkyenergy
@Justme किसी ऑब्जेक्ट वेरिएबल द्वारा उठाए गए ईवेंट को संभालने के कारण प्रक्रिया घोषणा के अंत में हैंडल कीवर्ड का उपयोग करें ** WithEvents ** कीवर्ड का उपयोग करके घोषित किया गया। http://msdn.microsoft.com/library/vstudio/6k46st1y – Chris