PDA

View Full Version : تغییر در کنترل های برنامه در تابه استاتیک event handler



elina
پنج شنبه 24 مرداد 1392, 11:24 صبح
سلام دوستان
من یه برنامه دارم که توی فرم اصلی برنامم چند تا عکس گذاشتم (عکس برای آلارم که سبز رنگ هست).وقتی یه event به برنامم ارسال میشه ( از طریق comport) میخوام عکسم عوض بشه ( یه عکس قرمز رنگ ).
حالا برای handle کردن event از eventhandler که یه تابع استاتیک هست استفاده میکنم .
ولی نمیدونم چه طوری باید توی این تابع از متد های nonstatic برنامم استفاده کنم . ( چه جوریع به کنترل image ام دست بزنم ؟)
اگه instanse از کلاسم بسازم جواب نمیده ( فکر کنم چون یه نمونه جدیده روی کنترل عکسم عمل نمیکنه )
خیلی واجبه لطفا اگه اطلاعاتی دارین به منم منتقل کنین :)

مهرداد صفا
پنج شنبه 24 مرداد 1392, 12:54 عصر
با سلام.
در صورت امکان بفرمایید چرا از متود static برای هندل کردن رویداد استفاده کردید؟

elina
شنبه 26 مرداد 1392, 11:12 صبح
با سلام.
در صورت امکان بفرمایید چرا از متود static برای هندل کردن رویداد استفاده کردید؟
سلام
اگه امکان داره بهم بگین کارم اشتباه بوده ؟ واسه هندل کردن این رویداد در msdn جستجو کرده بودم و این تابع استاتیک رو پیدا کرده بودم ، تفاوت توابع استاتیک و غیر اون رو میدونم ولی دلیل این کار رو نمیدونم .
آیا اگه از حالت استاتیک اون تابع استفاده نکنم مشکلی روی نمیده ؟

مهرداد صفا
شنبه 26 مرداد 1392, 12:29 عصر
سلام
اگه امکان داره بهم بگین کارم اشتباه بوده ؟ واسه هندل کردن این رویداد در msdn جستجو کرده بودم و این تابع استاتیک رو پیدا کرده بودم ، تفاوت توابع استاتیک و غیر اون رو میدونم ولی دلیل این کار رو نمیدونم .
آیا اگه از حالت استاتیک اون تابع استفاده نکنم مشکلی روی نمیده ؟

معمولا رویدادها با توابع staticهندل نمی شوند. چون نیازی به این کار نیست
شما اگر متود هندلر را در کلاسهای دیگر call نکردید و بدون نمونه سازی آن را فراخوانی نکردید آن را به instance member تغییر دهید. مشکلی پیش نخواهد آمد.

مهرداد صفا
شنبه 26 مرداد 1392, 12:29 عصر
سلام
اگه امکان داره بهم بگین کارم اشتباه بوده ؟ واسه هندل کردن این رویداد در msdn جستجو کرده بودم و این تابع استاتیک رو پیدا کرده بودم ، تفاوت توابع استاتیک و غیر اون رو میدونم ولی دلیل این کار رو نمیدونم .
آیا اگه از حالت استاتیک اون تابع استفاده نکنم مشکلی روی نمیده ؟

معمولا رویدادها با توابع staticهندل نمی شوند. چون نیازی به این کار نیست و اگر هم نیازی باشد با استفاده از delegate ها رفع میشود.
شما اگر متود هندلر را در کلاسهای دیگر call نکردید و بدون نمونه سازی آن را فراخوانی نکردید آن را به instance member تغییر دهید. مشکلی پیش نخواهد آمد.