PDA

View Full Version : سوال: عدم تغییر متن لیبل ...



ghasem110deh
پنج شنبه 05 شهریور 1394, 17:52 عصر
سلام به همه ...
ببخشید اسم تاپیک از این بهتر به ذهن ناقصم نرسید :)
------------------

از این کد واسه شمارش معکوس استفاده کردم :

T_Log.Start();
var startTime = DateTime.Now;
T_Log.Tick += (obj, args) => Lbl_Countdown.Text = (TimeSpan.FromMinutes(5) - (DateTime.Now - startTime)).ToString("hh\\:mm\\:ss") + @"
پنجره ورود بمدت پنج دقیقه غیر فعال می باشد !";
Lbl_Countdown.ForeColor = Color.Black;

و بعد انجام پروسه :

T_Log.Stop();
Lbl_Countdown.Text = "";

خود تایمر و ... مشکلی ندارن
وقتی زمان صفر میشه ، تایمر متوقف میشه ولی متن لیبل عوض نمیشه !!؟
مجبور شدم رنگ متن رو همرنگ زمینه لیبل کنم !
تایمر رو خارج از دستورای بالا که متوقف کنم میشه لیبل و متن ش رو تغییر داد
-------------------
و یه سوال دیگه واسم پیش اومد الان با Timer.Start/Stop کار کنم یا با Timer.Enabled = true/false ؟
البته هر دو جواب میدن ، فرقشون تو چیه ؟!

parvizwpf
پنج شنبه 05 شهریور 1394, 21:43 عصر
کد تون رو بزارید

alireza264
پنج شنبه 05 شهریور 1394, 22:34 عصر
سلام مهندس
بعد از هر بار تغییر label اونو refresh کن


Lbl_Countdown.Refresh();


تفاوت Timer.Start/Stop با Timer.Enabled = true/false اینه که در اولی تایمر روشن یا خاموشه و دومی مشخص میکنه که متدش رخ بده یا نه اگه روشن باشه و Timer.Enabled = false تایمردر حال محاسبه زمان در نتیجه سربار به برنامه میده و اگه مثلا در دقیقه سوم Timer.Enabled = true کنی بعد از دو دقیقه روتینش رخ میده اما اگه خاموش باشه و روشن کنی بعد از 5 دقیقه

ghasem110deh
پنج شنبه 05 شهریور 1394, 22:57 عصر
کد تون رو بزارید

کل کد مربوط به لیبل و تایمر همینه !


بعد از هر بار تغییر label اونو refresh کن

نشد :(

parvizwpf
جمعه 06 شهریور 1394, 09:50 صبح
دو خط دوم رو توی چه ایونتی دارید مینویسید از enabled استفاده کنید هم باز نشون نمیده؟

ghasem110deh
جمعه 06 شهریور 1394, 10:41 صبح
دو خط دوم رو توی چه ایونتی دارید مینویسید از enabled استفاده کنید هم باز نشون نمیده؟

تو یه متد نوشتم void Timer_Log()
و تو رویداد باتون کلید فراخوانی میکنم (البته توی شرط دفعات کلیک رو باتون)

نه Enabled هم همین مشکل رو داره !