PDA

View Full Version : سوال: event handler



roya_hh
یک شنبه 27 بهمن 1387, 12:03 عصر
سلام.
من یک فرم در زمان اجرا ایجاد کردم با چند تا component یکی از این component ها button است. حالا من میخواهم با زدن این کلید که در زمان اجرا ساخته شده است یک عملیات خاص( به فرض نمایش یک message) انجام شود. event handler را بلد نیستم. ممکنه کمکم کنید

حامد مصافی
یک شنبه 27 بهمن 1387, 12:12 عصر
AddHandler button1.click, addressof routine_for_button1_click

mostafaaa
یک شنبه 27 بهمن 1387, 12:14 عصر
سلام دوست من
به اين سوال بارها پاسخ داده شده، لطفا قبل از ايجاد تاپيك جستجو كنيد‌:
http://www.barnamenevis.org/forum/showthread.php?t=123220
...
يا علي

roya_hh
یک شنبه 27 بهمن 1387, 12:25 عصر
ببخشید شما این کد را توی form_load نوشتید در صورتیکه من هم فرم و هم کامپوننتها را در زمان اجرا ، ایجاد می کنم و هیچگونه دسترسی به event های فرم مربوطه ندارم

mostafaaa
یک شنبه 27 بهمن 1387, 13:17 عصر
سلام دوست من

ببخشید شما این کد را توی form_load نوشتید در صورتیکه من هم فرم و هم کامپوننتها را در زمان اجرا ، ایجاد می کنم و هیچگونه دسترسی به event های فرم مربوطه ندارم
هيچ فرقي نميكنه ، شما ميتوني با استفاده از همين AddHandler به Event هاي فرمت هم دسترسي داشته باشي !!

AddHandler Form2.Load, AddressOf F2Load

anooshiran
یک شنبه 27 بهمن 1387, 21:08 عصر
سلام دوست عزيز

براي اين منظور شما دو روش مي توانيد اختيار كنيد

در روش اول اگر control خود را به شكل زير Declare كنيد، تمام event هاي آن كنترل در اختيار شما خواهد بود



Friend WithEvents Button1a As Button
Friend WithEvents Form2 As Form


روش دوم كمي متفاوت تست قطعه كد زير شرحي بر ساختار يك فرم و باتن بصورت ران تايم است كه مي توانيد استفاده كنيد



Public Class Form1
Dim Form2 As Form
Dim button2 As Button
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2 = New Form
AddHandler Form2.Shown, AddressOf Form2_Shown
button2 = New Button
AddHandler button2.Click, AddressOf Button2_Click
Form2.ShowDialog()
End Sub
Private Sub Form2_Shown(ByVal sender As Object, ByVal e As System.EventArgs)
Form2.Controls.Add(button2)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
MsgBox("Hello EveryBody")
End Sub
End Class



در اين روش فقط دو event براي كنترل ها ايجاد شده
Form2.Shown كه وقتي فرم دوم كاملا نمايش داده شود اتفاق مي افتد و

button2.Click كه وقتي روي باتون ايجاد شده كليك مي شود

در هر صورت اميدوارم كه منظورتان را درست متوجه شده باشم.