Rais evenet و add handler در dll
سلام
من يا تايمر توي dll خودم دارم كه هر 1ثانيه مقدار يك string رو تغيير ميده
حالا ميخوام هر دفعه كه تغيير كرد مقدارش رو توي فرمم دريافت كنم
در dll هايي نظير jabber-net ديدم كه هر وقت xml از سرور به dll ارسال ميشه اونو ميتوني با گذاشتن يك كد addhandler دريافت كني در همان زماني كه xml به dll ميرسه!!!!
لطفا كمك كنيد
نقل قول: Rais evenet و add handler در dll
اگر اون مقدار String رو به عنوان Property تعریف کنی، میتونی زمان Set شدن مقدار به اون هر Event که خودت نوشتی و می خوای رو Raise کنی. درباره Property ها و نحوه نوشتن Event ها جستجو کن مثال زیاد گفته شده.
نقل قول: Rais evenet و add handler در dll
خيلي ممنون مدير بخش
اگه ميشه يه مثال ساده برام بزنيد! چون هيچ اطلاعي در مورد اينگونه كد ندارم
2روز هست كه تو گوگل سرچ ميزنم اما نتيجه نميگيرم چون اصلا نميدونم چي هست
يه لطفي بكنيد
ممنون
نقل قول: Rais evenet و add handler در dll
2تا Event تعریف کردم و موقع خواندن و ست کردن Property اونها رو Raise کردم
Public Class Sample
Public Event OnGetValue(Value As String)
Public Event OnSetValue(OldValue As String)
Private _TestProp As String
Public Property TestProp As String
Get
RaiseEvent OnGetValue(_TestProp)
Return _TestProp
End Get
Set(value As String)
RaiseEvent OnSetValue(_TestProp)
_TestProp = value
End Set
End Property
End Class
نقل قول: Rais evenet و add handler در dll
سلام.
من کمی با این RaiseEvent مشکل دارم و متوجه عملکردش نمیشم. من می خوام یک DLL بسازم و به Reference برنامم اضافه کنم. این کلاس تو خودش یک فرم رو برای انجام کاری نمایش میده. حالا برنامه اصلی من که این DLL رو اجرا میکنه چطور میتونه متوجه یک Event داخل DLL بشه و یک مقدار برگشتی هم دریافت کنه؟
ممنون میشم کمی با جزئیات بیشتر راهنمایی کنید.
نقل قول: Rais evenet و add handler در dll
کدهای موجود در کلاس
Public Shared WithEvents frm As Form
Public Shared Event _AlertClick(ByVal AlertID As Long)
Public Shadows Sub AlertClick()
RaiseEvent _AlertClick(AlertID)
End Sub
کد موجود در برنامه اصلی
Dim WithEvents a As New HMGH_Alert.HMGH_Alert
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim aa As String = "Test"
a.ShowAlert(CLng(Now.Second), aa, , , , HMGH_Alert_Position.TopRight, HMGH_Alert_ExitAnimation.ShrinkVertically)
AddHandler a.AlertClick, AddressOf CheckAlertID
End Sub
Sub CheckAlertID()
MsgBox("Clicked")
End Sub
اما زیر عبارت AddHandler a.AlertClick خط قرمز کشیده و مینویسه Expression Dose not produce a value.
نکته بعدی اینه که اگر بخوام تو همان a.ShowAlert نام CheckAlertID رو تعیین کنم باید چکار کنم.
ممنون
نقل قول: Rais evenet و add handler در dll
آیا لزومی داره که متغیرها بصورت WithEvents تعریف بشند یا نه
نقل قول: Rais evenet و add handler در dll
با تغییر زیر جواب گرفتم
Sub CheckAlertID(ByVal ID As Long) Handles a._AlertClick
MsgBox(ID)
End Sub