PDA

View Full Version : سوال: چگونه تایمر را شخصی سازی کنیم ؟



aradrobo
یک شنبه 03 دی 1391, 19:27 عصر
یک تایمر دارم با اینتروال 60000 یعنی 1 دقیقه . می خواهم که درونش کدی بنویسم که تا این 1 دقیقه به پایان برسد ، کدی درونش باشد که این زمان را نمایش دهد به صورت ثانیه ای .
این زمان درون یک لیبل نمایش داده شود .

حتماً باید اینتروال 1 دقیقه باشد . لطفاً حالا راهنمایی کنید .

morteza271
یک شنبه 03 دی 1391, 19:32 عصر
منظورتون رو درست متوجه نمیشم.
میشه بیشتر توضیح بدین؟
منظورتون از جمله زیر چیه؟
کدی درونش باشد که این زمان را نمایش دهد به صورت ثانیه ای

مهرداد صفا
یک شنبه 03 دی 1391, 20:51 عصر
سلام.
درون یک حلقه با 60 بار تکرار با استفاده از Thread.Sleep یک ثانیه توقف ایجاد کنید و شمارنده حلقه را نمایش دهید:

private void
timer1_Tick(object sender, EventArgs e)
{

for (int i = 0; i < 60; i++)
{
this.Text = i.ToString();
System.Threading.Thread.Sleep(1000);
}
}

aradrobo
یک شنبه 03 دی 1391, 21:57 عصر
منظورتون رو درست متوجه نمیشم.
میشه بیشتر توضیح بدین؟
منظورتون از جمله زیر چیه؟
کدی درونش باشد که این زمان را نمایش دهد به صورت ثانیه ای

من یک تایمر دارم . به اسم timer1

در برنامه نیاز دارم تا این تایمر فراخوانی بشه ( برای اینکه 1 دقیقه باید وقفه ایجاد بشه ) . لذا در این یک دقیقه هیچ اتفاقی قرار نیست بیفته . فقط یک دقیقه وقفه

حالا می خواهم که کاربر ببینه که از این یک دقیقه وقفه چقدرش گذشته و چقدر باقی مانده . متوجه شدید ؟

aradrobo
یک شنبه 03 دی 1391, 22:02 عصر
private void timer4_Tick(object sender, EventArgs e)
{
timer4.Enabled = false;
Checker = 0;
BtnRefresh_Click(sender,e);

for (int i = 60; i >=0; i--)
{
LblTime.Text = i.ToString();
System.Threading.Thread.Sleep(1000);
}

lstplusMihan.Enabled = true;
}

lstplusMihan هم یک تایمر دیگر است .

دستوری رو که دوستمون آقای M.safa دادن رو هم گذاشتم . ولی کار نکرد .

Mahmoud.Afrad
دوشنبه 04 دی 1391, 00:31 صبح
interval تایمر را روی یک ثانیه بزارید. یک متغیر برای شمارنده با مقدار اولیه 60 درنظر بگیرید و در هر تیک تایمر یک واحد ازش کم کنید. اگر به صفر رسید تایمر متوقف و کاری که میخواهید انجام بشه:

Int16 counter = 60;
private void timer4_Tick(object sender, EventArgs e)
{
counter--;
label1.Text = counter.ToString();
if (counter == 0)
{
timer4.Enabled = false;
Checker = 0;
counter = 60;
BtnRefresh_Click(sender, e);
lstplusMihan.Enabled = true;
}
}

danialafshari
دوشنبه 04 دی 1391, 01:12 صبح
http://barnamenevis.org/showthread.php?375300-%D8%A2%DB%8C%D8%A7-%D8%AA%D8%A7%DB%8C%D9%85%D8%B1-%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA%DB%8C-%DA%A9%D9%87-%D9%85%DB%8C-%D8%AE%D9%88%D8%A7%D9%87%D9%85-%D8%B1%D8%A7-%D8%AF%D8%A7%D8%B1%D8%AF-%D8%9F&p=1657894&viewfull=1#post1657894

aradrobo
دوشنبه 04 دی 1391, 04:32 صبح
interval تایمر را روی یک ثانیه بزارید. یک متغیر برای شمارنده با مقدار اولیه 60 درنظر بگیرید و در هر تیک تایمر یک واحد ازش کم کنید. اگر به صفر رسید تایمر متوقف و کاری که میخواهید انجام بشه:

Int16 counter = 60;
private void timer4_Tick(object sender, EventArgs e)
{
counter--;
label1.Text = counter.ToString();
if (counter == 0)
{
timer4.Enabled = false;
Checker = 0;
counter = 60;
BtnRefresh_Click(sender, e);
lstplusMihan.Enabled = true;
}
}


خیلی ممنون . دقیقاً همینی بود که می خواستم . با تشکر

aradrobo
دوشنبه 04 دی 1391, 04:34 صبح
interval تایمر را روی یک ثانیه بزارید. یک متغیر برای شمارنده با مقدار اولیه 60 درنظر بگیرید و در هر تیک تایمر یک واحد ازش کم کنید. اگر به صفر رسید تایمر متوقف و کاری که میخواهید انجام بشه:

Int16 counter = 60;
private void timer4_Tick(object sender, EventArgs e)
{
counter--;
label1.Text = counter.ToString();
if (counter == 0)
{
timer4.Enabled = false;
Checker = 0;
counter = 60;
BtnRefresh_Click(sender, e);
lstplusMihan.Enabled = true;
}
}


خیلی ممنون . دقیقاً همینی بود که می خواستم . با تشکر

aradrobo
چهارشنبه 13 دی 1391, 15:49 عصر
interval تایمر را روی یک ثانیه بزارید. یک متغیر برای شمارنده با مقدار اولیه 60 درنظر بگیرید و در هر تیک تایمر یک واحد ازش کم کنید. اگر به صفر رسید تایمر متوقف و کاری که میخواهید انجام بشه:

Int16 counter = 60;
private void timer4_Tick(object sender, EventArgs e)
{
counter--;
label1.Text = counter.ToString();
if (counter == 0)
{
timer4.Enabled = false;
Checker = 0;
counter = 60;
BtnRefresh_Click(sender, e);
lstplusMihan.Enabled = true;
}
}


یک مشکل جدید ایجاد شد . می خواهم یک کامبو باکس بسازم که آیتم هاش اعداد 10 و 20 و 30 و 60 هستند . وقتی کاربر عدد درون کامبو باکس را تغییر دهد ، زمان باید بر اساس این اعداد به ثانیه باشد . یعنی دیگر نمی خواهم که 60 ثانیه باشد . باید چه کنم ؟ با تشکر

Mahmoud.Afrad
چهارشنبه 13 دی 1391, 16:47 عصر
کافیه در رویداد SelectedIndexChanged کمبوباکس متن کمبو رو به عدد تبدیل کرده و به counter بدید.

Int16 counter = 60;
private void timer4_Tick(object sender, EventArgs e)
{
counter--;
label1.Text = counter.ToString();
if (counter == 0)
{
timer4.Enabled = false;
Checker = 0;
counter = 60;
BtnRefresh_Click(sender, e);
lstplusMihan.Enabled = true;
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
counter = Int16.Parse(comboBox1.SelectedItem.ToString());
}

aradrobo
چهارشنبه 13 دی 1391, 17:18 عصر
کافیه در رویداد SelectedIndexChanged کمبوباکس متن کمبو رو به عدد تبدیل کرده و به counter بدید.

اینو می دونم . ولی مشکلم اینجاست :
Int16 counter = 60;

با این خط چه کنم ؟ لطفاً با دقت نگاه کنید . چون یک سری خطا هایی می دهد .

aradrobo
پنج شنبه 21 دی 1391, 17:34 عصر
لطفاً اگر کسی اطلاعاتی داره به من کمک کنه .