مشاهده نسخه کامل
: ميشه در مورد هندلينگ کمک کنيد ؟
Ultimator
05-04-2008, 17:17
سلام دوستان
ميخواستم از اساتيد بپرسم اين add handler و remove handler کردن ها به چه دردی ميخوره ؟!
کلاً يه توضيحی در مورد هندلر کردن بدين ممنون ميشم
shalineh
05-04-2008, 17:42
نیما کوچولو ، سوال خوبی پرسیدی :20:
به زبان ساده بهت توضیح میدم. پس خوب گوش کن:
فرض کن شما یه برنامه داری مینویسی که در هنگام اجرا ( Run Time) میخوای یه button به برنامه ات اضافه کنی. خب معلومه که موقع اجرا نمیتونی یک button ار تولبار drag کنی و بکشی روی فرمت. درسته؟
پس تنها راه ممکن استفاده از کد می باشد.
برای این منظور ابتدا میای یک button تعریف میکنی.اینجوری:
dim button1 as new button
خب تعریف کردی. حالا باید چیکار کنیم؟
ابتدا باید خصوصیات این button رو ست کنی. مثلا:
button1.Text=some string
button1.size= some integer
button1. ... = some value
.
.
.
.
me.controls.add button1
حالا میخوای که مثلا با کلیک کردن روی این button جدید ، عنوان فرمت عوض بشه. اگه برنامه رو اجرا کنی می بینی که با کلیک روی این button هیچ اتفاقی نمیافته.
اینجاست که handling حلال مشکلات است. یعنی چه؟ یعنی اینکه باید بیای هندل رویداد یا event مربوطه رو با این button ست کنی.
پس باید این کد رو در همون بخش ست کردن پراپرتیهای button اضافه کنی:
addhandler button1.click,Addressof Button1_click
این کد به button میفهمونه که وقتی کلیک شد باید چه خاکی به سرش بریزه :31:
اما صبر کن. هنوز تموم نشده. این رویداد Button1_click دیگه چه صیغه ای هستش؟ خب، هنوز که کد مربوط به این رویداد رو ننوشتیم. باید زحمت نوشتنش رو هم خودمون متقبل بشیم.
پس یه روال جدید به نام Button1_click ایجاد میکنیم و کدهای مورد نظر خودمون رو توش مینویسم. چجوری؟
اینجوری:
private sub Button1_click( byval Sender as system.object, byval e as system.eventargs)i
me.text= some text
end sub
این همه ماجرای مربوط به handling بود.
امیدوارم فهمیده باشی نیما کوچولوی من.
آها. خوب شد یادم اومد.
ممکنه جاهایی نیاز باشه که Button نمایش داده بشه ولی با کلیک روی اون هیچ اتقاقی نیافته. اینجا باید چیکار کنیم؟ خیلی ساده هست. هر جا خواستی رویداد کلیک هندل شده به Button1 رو بی اثر کنی این کد رو بنویس:
removehandler button1.click,Addressof Button1_click
تبریک میگم. کار تموم شد.
Ultimator
05-04-2008, 18:35
اِ اِ اِ اِ اِ اِ اِ اِ اين که همون هندله !! !! همون اول میگفتی !!!
مثل این :
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
مثل اینکه فهمیدم !
مرسی مامان سانلی !!!:20::31:
:10:
سلام
میبخشید بی موقع مزاحم شدم !!!!
ولی میخواستم بگم که دستور Handles با WithEvents کار میکنه و جالب اینکه شاید ندونید ولی در اصل فقط در ذات دات نت Addhandler و RemoveHandler را داریم و کامپایلر VB به طرزی خاص و با کمی دوز و کلک دستورات حاوی Handles با WithEvents را به AddHandler و RemoveHandlewr سوییچ میدهد.
Ultimator
08-04-2008, 20:57
ممنون از توضيح جالبتون .شما سروری مراحمی اصلا اينجا متعلق به خودتونه ! اصلا شما ادمينی ! ...
وا اين ويبی هم چه باحاله تو سی شارپ ازين خبرا نيست ، همينه کشته مرده ی اين وی بی شديم ديگه !
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.