PDA

View Full Version : پردازش فقط برای این متد باشد



saed2006
شنبه 19 دی 1388, 12:51 عصر
متدی اجرا میشود و باعث فراخوانی رویدادهایی میگردد
ایا روشی وجود دارد که اجازه ندهد تا وقتی به پایان متد نرسیده ایم رویداد ها اجرا نشوند؟

mir555
شنبه 19 دی 1388, 13:09 عصر
بشتر توضیح بدین
منظورتون اینه فقط متد خودتون اجرا بشه؟

saed2006
شنبه 19 دی 1388, 13:28 عصر
رویداد در متد فعال میشه اما
متد اجازه اجرای رویداد رو نده

FastCode
شنبه 19 دی 1388, 14:24 عصر
تنها کاری که میتونید بکنید اینه که به متغیر در سطح کلاس موقع ورود به اون تابع یه مقدار بدید و موقع خروج برش گردونید به حالت اول.
توی هر رویداد هم باید اون متغیر رو تست کنید و اگر نشون میداد که اون تابع در حال اجراست باید از رویداد خارج بشید.
در کل این روش اشتباه و باید کدتون رو یه جوری بنویسید که مجبور به این کار نشید.

saied_genius
شنبه 19 دی 1388, 16:22 عصر
مي توانيد رويدادتان را handle کنيد.

e.Handled = true;

اين باعث مي شود که رويداد اجرا نشود.

موفق باشيد

mir555
شنبه 19 دی 1388, 18:03 عصر
تنها کاری که میتونید بکنید اینه که به متغیر در سطح کلاس موقع ورود به اون تابع یه مقدار بدید و موقع خروج برش گردونید به حالت اول.
توی هر رویداد هم باید اون متغیر رو تست کنید و اگر نشون میداد که اون تابع در حال اجراست باید از رویداد خارج بشید.
در کل این روش اشتباه و باید کدتون رو یه جوری بنویسید که مجبور به این کار نشید.
موافقم اصلا برنامه نویسی تو محیط ویژالی برای اینه که چند تا رویداد با هم انجام بشه وگرنه اگه بخوای هر روال تا تموم نشد روال بعدی اجرا نشه برنامه نویسی تو داس بود

اَرژنگ
یک شنبه 27 دی 1388, 13:36 عصر
رویداد در متد فعال میشه اما
متد اجازه اجرای رویداد رو نده

یکمی توضیح بیشتر بدید

اَرژنگ
دوشنبه 28 دی 1388, 00:37 صبح
رویداد در متد فعال میشه اما
متد اجازه اجرای رویداد رو نده

اگر ممکن است یکمی در مورد ضمینه جایی که این مشکل باید حل بشد توضیح بدید، ممکن است که که با کمی تغییر در روش اصلاً احتیاجی به این کار نباشد، چونکه یکمقداری این حالتی که فرمودید معمولاً پیش نمیاد.

FastCode
دوشنبه 28 دی 1388, 08:29 صبح
موافقم اصلا برنامه نویسی تو محیط ویژالی برای اینه که چند تا رویداد با هم انجام بشه وگرنه اگه بخوای هر روال تا تموم نشد روال بعدی اجرا نشه برنامه نویسی تو داس بود

ببخشید ولی من اصلا" نفهمیدم چی گفتید.:متعجب:
میشه بیشتر توضیح بدید؟

saed2006
دوشنبه 28 دی 1388, 09:23 صبح
اگر ممکن است یکمی در مورد ضمینه جایی که این مشکل باید حل بشد توضیح بدید، ممکن است که که با کمی تغییر در روش اصلاً احتیاجی به این کار نباشد، چونکه یکمقداری این حالتی که فرمودید معمولاً پیش نمیاد.

روی فرم کنترل هایی دارم برای گرفتن تعدادی عدد از کاربر
حالا توی رویداد value change هر کدوم یکسری کارها باید اتفاق بیفته
و یک قسمت هم هست برای باز کردن فایل برنامه
یعنی کاربر وقتی فایل برنامه رو باز کرد باید اعدادی که قبلا توی این فایل ذخیره شده بودند داخل کنترل هایی که گفتم نوشته شوند
حالا میخوام وقتی برنامه داره باز میشه و کنترل ها پر میشن دیگه اون کد هایی که داخل value change هستند اجرا نشوند و اگر توی این حالت نبودیم رویداد ها اجرا شوند
نمیدونم راه بهتری هست یا نه ولی من اومدم توی رویداد چک کردم که ایا در حالت باز کردن فایل هستی یا خیر
به عبارتی با یک متغیر بولین کنترل میکنم که ایا رویداد اجرا بشه یا نه

CYCLOPS
دوشنبه 28 دی 1388, 09:32 صبح
به عبارتی با یک متغیر بولین کنترل میکنم که ایا رویداد اجرا بشه یا نه
خوب خودتون جواب سوالتون رو دادید دیگه
مشکل کجاست ؟؟
این راه که راه بدی نیست . . .

اَرژنگ
دوشنبه 28 دی 1388, 09:34 صبح
ببینید من روی فرمم کنترل هایی برای گرفتن تعدادی عدد از کاربر دارم
حالا توی رویداد value change هر کدوم یکسری کارها باید اتفاق بیفته
و یک قسمت هم دارم برای باز کردن فایل برنامه ام
یعنی کاربر وقتی فایل برنامه رو باز کرد باید اعدادی که قبلا توی این فایل ذخیره شده بودند داخل کنترل هایی که گفتم نوشته شوند
حالا میخوام وقتی برنامه داره باز میشه و کنترل ها پر میشن دیگه اون کد هایی که داخل value change هستند اجرا نشوند و اگر توی این حالت نبودیم رویداد ها اجرا شوند
نمیدونم راه بهتری هست یا نه ولی من اومدم توی رویداد چک کردم که ایا در حالت باز کردن فایل هستی یا خیر
به عبارتی با یک متغیر بولین کنترل میکنم که ایا رویداد اجرا بشه یا نه

احتیاجی به چک کردن و استفاده از متغییر نیست. بعد از اینکه لود شد اتچ کنید و زمانی که لازم نیست دیتچ.



http://msdn.microsoft.com/en-us/library/ms366768(VS.80).aspx

saed2006
دوشنبه 28 دی 1388, 09:46 صبح
میشه کمی بیشتر توضیح بدین
یعنی میشه کاری کرد که ایونت ها غیر فعال و فعال بشن؟

SMRAH1
دوشنبه 28 دی 1388, 11:41 صبح
سلام
1) لینکی که دوست گرامی آقای آرژنگ گذاشته اند رو نگاه بندازی متوجه میشی .توضیح اینکه همونطور که ما رویداد ها رو به متد ها متصل می کنی (در این لینک رویداد HandleCustomEvent به RaiseCustomEvent در کد نویسی متصل شده)،همونطور می تونی اتصال را برداری (در آخرین خط نوشته RaiseCustomEvent -= HandleCustomEvent که اتصال رو قطع می کنه)
2) در تکمیل فرمایشات جناب آرژنگ باید توجه کرد که حنما باید برخی رویداد ها رو هندل کنی.مثل رویداد Form_Closing که باید حتما برنامه نویسی بشه و اگر برنامه در حال کاره،فرم بسته نشه).

موفق باشید