
نوشته شده توسط
esmael_g
سلام و روز خوش این مورد رو دیروز انجام دادم و دقیق تر شد تایمر و شمارنده اما امروز با یه مشکل جدید برخورد کردم تایمر هم استارت میشه هم ریست اما وقتی رو دکمه توقف می زنم متوقف میشه فرضا رو ثانیه ده ولی وقتی ( فرض کنیم ده ثانیه صبر می کنم ) دوباره استارت رو می زنم به ثانیه 20 پرش می کنه یعنی عملا تایمر هنوزم به کار خودش ادامه داده نه اینکه بیاد توقف پیدا کنه
عملا می خوام کاربر رو توقف کلیک کرد رو همون ثانیه تایمر متوقف بشه بعد از اون حالا بعد از هر چند ثانیه لازم شد دوباره استارت رو بزنه و از همون نقطه ای که متوقف شده دوباره به کارش ادامه بده
ظاهرا مواردی مثل
time.enable=false;
timer.stop();
این موارد کارساز نیست
خواهشا کمکی بکنید چون تایمر با زمان کار می کنه وقتی تایمر رو متوقف می کنم زمان توقف نداره datetime قابلیت ایست نداره کامل غیر فعال میشه اما توقف نداره تا جایی که دانشش رو داشتم هر مدلی که می دونستم رو تست کردم اما جواب گو نبود لطفا اگه می دونید کمک کنید
یک پیشنهاد ساده دارم. شما یک متغیر ElapsedTime برای نگهداری زمان ذخیره شده در نظر بگیرید :
public partial class PcMain : Form
{
private double price;
public static DateTime StartTime = DateTime.MinValue;
public static TimeSpan ElapsedTime;
و وقتی تایمر رو متوقف کردید زمان سپری شده رو داخلش ثبت کنید :
private void button2_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
ElapsedTime = DateTime.Now.Subtract(StartTime);
}
و وقتی تایمر رو مجددا راه می اندازید اون زمان رو در زمان شروع اعمال کنید :
private void button1_Click(object sender, EventArgs e)
{
StartTime = DateTime.Now.Subtract(ElapsedTime);
timer1.Enabled = true;
}