ورود

View Full Version : سوال: نحوه ی اضافه کردن رویداد(Event) به یوزرکنترل



فاطمه وطن دوست
دوشنبه 21 مرداد 1387, 14:32 عصر
سلام

سوال
نحوه ی اضافه کردن رویداد به یوزرکنترل به چه شکله ؟ http://www.forum.p30world.com/images/New-smile/N_aggressive%20(20).gif

توضیحات http://www.forum.p30world.com/images/New-smile/N_aggressive%20(37).gif

تو بخش آموزش و مقالات ، یه پی دی اف در این مورد گذاشته شده .
ولی با این تفاوت که اون یه ایونت با یه پارامتر رو مثال زده ولی من به ایونت دارای 4 پارامتر
احتیاج دارم.

باید برای هر کدوم از پارامترهای x,y,shift,button رویداد mousedown یه خصوصیت تعریف کرد و باget , let مقادیر جدید رو براشون مقداردهی کرد و در نهایت به صورت یه پارامتر به رویدادmouse down پاس داد ؟ یا روش اصولی تری هم وجود داره ؟

noorsoft
دوشنبه 21 مرداد 1387, 14:47 عصر
شما باید یک Event تعریف کنید در قسمت General مثلا



Public Event Click()
بعد هر جایی که نیاز دارین این رویداد را صدا بزنید
فرض کنید شما یک کنترل دارید و میخواهید اگر روی آن کلیک شد رویداد فعال شود



sub Usercontrol_Click()
raiseevent Click()
end sub


اگر متغیرهای بیشتری هم میخواین کافی در تعریف رویداد انها را اضافه کنید و در صدا زدن رویداد آنها را مقدار دهی کنید

فاطمه وطن دوست
دوشنبه 21 مرداد 1387, 15:09 عصر
سلام

نمونه رو ببینید . http://www.forum.p30world.com/images/New-smile/N_aggressive%20(15).gif

loads
دوشنبه 21 مرداد 1387, 16:10 عصر
کد raiseevent هم مربوط به کنتروله ، شما اشتباهی به کد فرم اضافه کردید .

Mbt925
دوشنبه 21 مرداد 1387, 17:05 عصر
Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
RaiseEvent MouseDown(Button, Shift, X, Y)
End Sub

فاطمه وطن دوست
دوشنبه 21 مرداد 1387, 17:23 عصر
سلام و http://www.forum.p30world.com/images/buttons/post_thanks.gif (http://www.forum.p30world.com/post_thanks.php?do=post_thanks_add&p=2792299&securitytoken=c8454a4e1dde6ec507dd4b2fd011a2a9aa87 5883)

البته Public اش جا افتاده . http://www.forum.p30world.com/images/New-smile/N_aggressive%20%2837%29.gif






Public Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)


Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
RaiseEvent MouseDown(Button, Shift, X, Y)
End Sub

Mbt925
دوشنبه 21 مرداد 1387, 17:29 عصر
سلام و http://www.forum.p30world.com/images/buttons/post_thanks.gif (http://www.forum.p30world.com/post_thanks.php?do=post_thanks_add&p=2792299&securitytoken=c8454a4e1dde6ec507dd4b2fd011a2a9aa87 5883)

البته Public اش جا افتاده . http://www.forum.p30world.com/images/New-smile/N_aggressive%20%2837%29.gif

از اونجا که یه ایونت فقط می تونه کاربرد عمومی داشته باشه ( برای کنترل)، بنابراین به صورت پیش فرض Public خواهد بود. ( فقط همین حالت رو داره)

فاطمه وطن دوست
دوشنبه 21 مرداد 1387, 20:37 عصر
سلام

نمیدونم جاش بود این پست و اینجا بدم یا نه . http://www.forum.p30world.com/images/New-smile/N_aggressive%20(15).gif

چطوری میتونم تایمر رو متوقف کنم ؟ منظورم اینه که این کدو تو کدوم رویداد باید بنویسم ؟

تقریبا تو رویدادی مختلفی تست کردم که ببینم کجا میشه تایمر رو غیر فعال کرد. ولی نشد.


Me.Timer1.Enabled = False
اینم نمونه برنامه
==================

اینم یکم توضیح آنچه من میخوام .

در واقع تا وقتی تایمر رو غیر فعال نکنیم با حرکت ماوس روی پیکچر باکس و نزدیک شدن به کناره های پیکچر باکس ، عمل اسکرول انجام میشه ولی من میخوام با حرکت یا کشیدن یوزرکنترل خط و نزدیک شدن به کناره های پیکچر باکس عمل اسکرول انجام بشه. و بعد از رها کردن ماوس بتونیم تایمر رو غیر فعال کنیم تو رویداد MOUSEUP ( که واسه یوزر کنترل تعریف شده ) Me.Timer1.Enabled = False نوشته شده ولی جواب نمیده .
از یه FLAG منطقی(منظورم همون متغیر از نوع بولین هست. ) هم استفاده کردم ولی باز جواب نداد .

sohrab o
سه شنبه 22 مرداد 1387, 15:04 عصر
سلام

این پست به جهت بالا اومدن زده میشه ، بعدا پاک خواهد شد.

دوستان پاسخگو نیستند ؟

یعنی چی؟جواب ها که کامل بود.
لطف کنید کامل توضیح بدید تا پست های بیهوده ارسال نکنیم

Mbt925
سه شنبه 22 مرداد 1387, 23:38 عصر
نمونه ناقصه.

فاطمه وطن دوست
چهارشنبه 23 مرداد 1387, 08:10 صبح
ســـــــــــــــــــــلام

http://barnamenevis.org/forum/images/buttons/post_thanks.gif (http://barnamenevis.org/forum/post_thanks.php?do=post_thanks_add&p=570042) از اینــــــــکه گفتین.

ایـــــــنــــــــــم نمونه کــــــــــامـــــــــل .

از هـــــــــمه دوســــــــتان هم به خاطر این اشتباه معـــــــــــذرت میخوام. http://www.forum.p30world.com/images/New-smile/N_aggressive%20(36).gif

خــــب پیــــــش میاد دیگه . http://www.forum.p30world.com/images/New-smile/N_aggressive%20(17).gif http://www.forum.p30world.com/images/New-smile/N_aggressive%20(37).gif

noorsoft
چهارشنبه 23 مرداد 1387, 09:02 صبح
برنامه شما احتیاجی به تایمر و فلگ نداره
من براتون کدهاتون را اصلاح کردم

بازهم کدهاتون جای کار داره که بهینه تر بشه

یک نکته دیگه اینکه اسامی رویدادها را لازم نیست My به انها اضافه کنید

فاطمه وطن دوست
پنج شنبه 24 مرداد 1387, 21:22 عصر
سلام

چرا موقع کشیدن یوزر کنترل خط پیکچر باکس جابه جا میشه ؟
در حالیکه باید پیکچر باکس ثابت باشه ( بدون جا به جائی) !
خودتون تو محیط وورد تست کنید. ( یه خط ترسیم کنید با ابزار لاین ).

noorsoft
جمعه 25 مرداد 1387, 08:46 صبح
کد تون را اصلاح کردم