PDA

View Full Version : سوال: کاربرد AddHandler و AddressOf و این کد



ahmadreza517
جمعه 16 دی 1390, 16:31 عصر
به نام تنها برنامه نویس هستی
سلام دوستان
می شه قطعه کد زیر توضیح بدید (AddHandler و AddressOf)

مدیران تالار بنا به تکراری بودن تاپیک لطف کنید این تاپیک حذف نکنید .



Public Sub New()
InitializeComponent()

Dim img As Image = Image.FromFile("C:\pics\1.jpg")
Me.btnImage.Image = img
Me.picBox.AllowDrop = True
AddHandler btnImage.MouseDown, AddressOf btnImage _MouseDown
AddHandler picBox.DragDrop, AddressOf pictureBox_DragDrop
AddHandler picBox.DragEnter, AddressOf pictureBox_DragEnter
End Sub


Private Sub btnImage_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
Dim btnPic As Button = CType(sender, Button)
btnPic.DoDragDrop(btnPic.Image, DragDropEffects.Copy)
End Sub

Private Sub pictureBox_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs)
If e.Data.GetDataPresent(DataFormats.Bitmap) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub

Private Sub pictureBox_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs)
Dim picbox As PictureBox = CType(sender, PictureBox)
Dim g As Graphics = picbox.CreateGraphics()
g.DrawImage(CType(e.Data.GetData(DataFormats.Bitma p), Image), New Point(0, 0))
End Sub

Hybrid
جمعه 16 دی 1390, 17:31 عصر
سلام ،

کلا کارش اینه که جلوی Addhandler میای رویداد مورد نظر از شی مورد نظر رو مینویسی و از طریق دستور Addressof میای قعه کدی رو که نوشتی بهش(رویداد مورد نظر) نسبت میدی...دقت کنی کمل میفهمیش...

موفق باشید./

sh2007
جمعه 16 دی 1390, 17:54 عصر
سلام ،

کلا کارش اینه که جلوی Addhandler میای رویداد مورد نظر از شی مورد نظر رو مینویسی و از طریق دستور Addressof میای قعه کدی رو که نوشتی بهش(رویداد مورد نظر) نسبت میدی...دقت کنی کمل میفهمیش...

موفق باشید./
لطفا کمی مفهومی تر توضیح بدید ممنون

silver_Rain
جمعه 16 دی 1390, 18:02 عصر
سلام
فرض کن ایجکت a رویدادی به نام b داره که در تابع a_b فراخونی میشه.
حالا این کد این کارو میکنه.رویداد bرو از ابجکت a فراخونی میکنه که همون تابع a_b هستش.

موفق باشی

Hybrid
جمعه 16 دی 1390, 18:43 عصر
لطفا کمی مفهومی تر توضیح بدید ممنون
جهت انتصاب رویداد به یک کنترل در زمان اجرا دو مرحله وجود دارد...
الف)ابتدا دستوراتی را کع میخواهیم برای یک رویداد اجرا شود را در قالب یک بسته ی زیر برنامه قرار میدهیم.
ب)با استفاده از دستورات handles یا AddHandler میام زیر برنامه ساخته شده را به آن رویداد انتصاب میدهیم تا در زمان وقوع رویداد اجرا شوند.

دستور handles :
این دستور برای انتصاب زیربرنامه به رویداد مورد نظر از کنترل مورد نظر به کار میره :

Sub نام زیر برنامه (...)handles نام رویداد .نام کنترل
دستورات
End Sub

دستور Addhandler :

این دستور جهت انتصاب زیر برنامه به رویداد مورد نظر از کنترل مورد نظر به کار میره :


AddHandlerنام رویداد.نام کنترل ,AddressOF نام زیربرنامه

موفق باشید./

ahmadreza517
جمعه 16 دی 1390, 21:05 عصر
از دوستانی که منو راهنمایی کردن تشکر می کنم.
می شه در باره
WithEvents
RaiseEvent
CauseEvent

توضیح بدین همراه با مثال