PDA

View Full Version : سوال: باقیماندن آیکون در کنار ساعت پس از خروج از برنامه !!



roya.raha
دوشنبه 21 اسفند 1391, 17:30 عصر
سلام

برنامه ای نوشتم که برای سهولت دسترسی آیکون آن با یکسری امکانات کنار ساعت ویندوز قرار می گیرد. حالا مشکلم این است که گاهی اوقات بعد از خروج از برنامه همینطور آیکون باقی می ماند و تا ماوس را روی آن نبرم حذف نمی شود ( تا ماوس را روی آن می برم ناپدید می شود) . بعضی وقتها چندین آیکون از برنامه بصورت تکراری باقیمانده است در صورتیکه کلا از برنامه خارج شده ام !.

mahdi.a.v
دوشنبه 21 اسفند 1391, 17:50 عصر
فكر ميكنم اگه كمي صبر كنيد آيكن هاي تكراريش بره (براي من اينطور بوده)

roya.raha
دوشنبه 21 اسفند 1391, 17:57 عصر
وقتی از برنامه خارج هم می شوم باز آیکونها هستند! اینکه میگم خارج میشم نه اینکه فرم را می بندم کلا برنامه exit شده ولی باز آیکونها هست. تا ماوس را می برم روشون ناپدید می شوند!

the king
دوشنبه 21 اسفند 1391, 20:53 عصر
وقتی از برنامه خارج هم می شوم باز آیکونها هستند! اینکه میگم خارج میشم نه اینکه فرم را می بندم کلا برنامه exit شده ولی باز آیکونها هست. تا ماوس را می برم روشون ناپدید می شوند!

اگه خروج از برنامه ناگهانی (بروز خطا یا End Task ) باشه پیغامی مبنی بر حذف آیکون به ویندوز ارسال نمیشه، برای همینه که اون آیکون
تا زمانی که رسم مجدد صورت نگیره باقی می مونه. برای خاتمه دادن به اجرای برنامه از چه کدی استفاده کرده اید؟ ظاهرا Thread اصلی
برنامه رو ناگهانی و فوری متوقف می کنید و موقع خاتمه یافتن اجرای برنامه فرصت ارسال رخداد های عادی رو بهش نمی دهید.

SHD.NET
دوشنبه 21 اسفند 1391, 21:39 عصر
منم این مشکل رو داشتم . به ترد و ... هم مربوط نیستش . هر برنامه ای که باشه مال منم اینجوری شده .

roya.raha
دوشنبه 21 اسفند 1391, 22:00 عصر
برای خاتمه دادن به اجرای برنامه از چه کدی استفاده کرده اید؟


از دستور application.exit .اگر فرم اصلی هم توسط کاربر بسته شود برنامه خاتمه پیدا می کند.
غیر از نرم افراز خودم چندتا نرم افزار فارسی دیگه هم دیدم که این مشکل را دارند. نمی دونم کجای کار مشکل داره

SHD.NET
دوشنبه 21 اسفند 1391, 22:28 عصر
من همه دستورارو تست کردم . با همه مشکل داره . فک کنم مشکل از کامپوننتشه .

xxnagin
دوشنبه 21 اسفند 1391, 22:41 عصر
سلام
همه همین مشکل رو دارن منم همین طور
ولی فکر نکنم چیز خاصی باشه
عادی هستش
از کجا معلوم مشکل مال خود vs نباشه


تو گوگل اینو سرچ کنید
Multiple icons open in tray bar

اینم نمونه هاش
http://stackoverflow.com/questions/13320747/multiple-icons-open-in-tray-bar

http://social.msdn.microsoft.com/Forums/en/Vsexpressvcs/thread/2622d975-d627-43ad-b82f-4d01f01234b2
اینجا خودش جواب خودش رو پیدا کرده
گفته از Dispose استفاده کنید
trayIcon.Dispose()

مخصوصا این
http://www.access-programmers.co.uk/forums/showthread.php?t=62623

shahryari
دوشنبه 21 اسفند 1391, 22:50 عصر
اين مشكل زماني پيش مياد كه بجاي خروج از برنامه ، از دكمه stop خود ويژال استفاده ميكنيد....
وگرنه اگر فايل exe برنامه را مستقيما اجرا كنيد و براي خروج از دكمه ضربدر استفاده كنيد، ملاحضه ميكنيد كه NotifyIcon نيز از بين ميره .....

roya.raha
سه شنبه 22 اسفند 1391, 05:53 صبح
اینجا خودش جواب خودش رو پیدا کرده
گفته از Dispose استفاده کنید
trayIcon.Dispose()



یعنی از NotifyIcon1.Dispose() استفاده کنم ؟ چون در VB که trayIcon.Dispose() پیدا نکردم ( در لینک اولی که گذاشتید در c# طرف از NotifyIcon1.Dispose() استفاده کرده ولی جواب نگرفته ! ) .
حالا اگر باید از NotifyIcon1.Dispose() استفاد نمود کجا استفاده کنم ؟ اگر کاربر با دکمه ضربدر فرم اصلی برنامه را ببنده که این دستور اجرا نمیشه!

roya.raha
سه شنبه 22 اسفند 1391, 05:56 صبح
اين مشكل زماني پيش مياد كه بجاي خروج از برنامه ، از دكمه stop خود ويژال استفاده ميكنيد....
وگرنه اگر فايل exe برنامه را مستقيما اجرا كنيد و براي خروج از دكمه ضربدر استفاده كنيد، ملاحضه ميكنيد كه NotifyIcon نيز از بين ميره .....

برنامه را بردم روی سیستمی که اصلا VS نصب نیست اجرا کردم همین مشکل را دارد !! ولی نمی دونم چرا فقط در برنامه های فارسی این مشکل را دیدم حتما یک راه حلی دارد، در اداره ای که کار می کنم یک سامانه مکاتبات دارند اونهم همینطور آیکونش باقی می ماند!

Heidari66
سه شنبه 22 اسفند 1391, 20:40 عصر
قبل از اینکه برنامه بسته بشه NotifyIcon.Visible رو False کن

roya.raha
چهارشنبه 23 اسفند 1391, 07:57 صبح
قبل از اینکه برنامه بسته بشه NotifyIcon.Visible رو False کن

به خاطر توجهتون ممنون ولی خب مشکل اینه که برنامه ممکنه با کلید ضربدر بسته بشه .

shahryari
چهارشنبه 23 اسفند 1391, 12:38 عصر
به خاطر توجهتون ممنون ولی خب مشکل اینه که برنامه ممکنه با کلید ضربدر بسته بشه .
در رويداد فرم كلوزينگ NotifyIcon.Visible رو False کن