به کار گیری تایمر برای شمارش مخصوص
سلام
تو این کد تایمر تکست سه لیبل رو میخونه و شمارش معکوس رو برمیگردونه! مشکلی که داره اینه که فقط تا زمانی کار درست میکنه که به دقیقه 1 نرسیده باشه و اگه رسید یک دقیقه میسوزه مثلا 0:1:0 وقتی به این زمان رسید به جای 0:0:60 میشه 0:0:0 خواهشمندم ترمیمش کنید و برام بزاریدش .
دمتون گرم
int index = Int32.Parse(lblSecond.Text);
int minute = Int32.Parse(lblMinutes.Text);
int hour = Int32.Parse(lblHour.Text);
index--;
lblSecond.Text = index.ToString();
if (lblSecond.Text == "0" && lblMinutes.Text != "0")
{
lblSecond.Text = "60";
minute -= 1;
lblMinutes.Text = minute.ToString();
} if (lblMinutes.Text == "0" && lblSecond.Text == "0")
{
hour -= 1;
lblHour.Text = hour.ToString();
lblMinutes.Text = "60";
lblSecond.Text = "60";
}
if (lblHour.Text == "0")
{
hour = 0;
lblHour.Text = "0";
}
if (lblMinutes.Text == "1" && lblSecond.Text == "0" && lblHour.Text == "0")
{///****
minute -= 1;
lblMinutes.Text = minute.ToString();
}
if (lblHour.Text == "0" && lblMinutes.Text == "0" && lblSecond.Text != "0")
{
timer1.Stop();
lblSecond.Text = "0";
}
نقل قول: به کار گیری تایمر برای شمارش مخصوص
اینجوری حل میشه
int index = Int32.Parse(lblSecond.Text);
int minute = Int32.Parse(lblMinutes.Text);
int hour = Int32.Parse(lblHour.Text);
if (lblSecond.Text == "0" && lblMinutes.Text != "0")
{
minute--;
index = 60;
lblMinutes.Text = minute.ToString();
lblSecond.Text = index.ToString();
}
if (lblSecond.Text == "0" && lblMinutes.Text == "0" && lblHour.Text != "0")
{
hour--;
minute = 60;
index = 0;
lblMinutes.Text = minute.ToString();
lblSecond.Text = index.ToString();
lblHour.Text = hour.ToString();
}
if (lblSecond.Text != "0")
{
index--;
lblSecond.Text = index.ToString();
}
نقل قول: به کار گیری تایمر برای شمارش مخصوص
سلام
فک کنم این چیزیه که میخواین
s1 , m1 , h 1 لیبل های ثانیه و دقیقه و ساعت هستند و i1 , i2 , i3 متغیر هایی برای ذخیره مقدار ثانیه و دقیقه و ساعت هستند
private void timer1_Tick(object sender, EventArgs e)
{
i1++;
s1.Text = i1.ToString("00");
if (i1 == 59)
i1 = -1;
if (i1 == 0)
{
i11++;
m1.Text = i11.ToString("00");
}
if (i11 == 59)
i11 = -1;
if (i11==0 && i1 == 0)
{
i111++;
h1.Text = i111.ToString("00");
}
}
موفق باشید
نقل قول: به کار گیری تایمر برای شمارش مخصوص
فکر کنم این بدردتون بخوره
namespace Test
{
public partial class Form1 : Form
{
int h = 0, m = 0, s = 0;
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
s = s + 1;
if (s == 60)
{
m = m + 1;
s = 0;
}
if (m == 60)
{
m = 0;
h = h + 1;
}
label1.Text = h.ToString("00") + ":" + m.ToString("00") + ":" + s.ToString("00");
}
}
}
نقل قول: به کار گیری تایمر برای شمارش مخصوص
نقل قول:
نوشته شده توسط
mousa1992
سلام
فک کنم این چیزیه که میخواین
s1 , m1 , h 1 لیبل های ثانیه و دقیقه و ساعت هستند و i1 , i2 , i3 متغیر هایی برای ذخیره مقدار ثانیه و دقیقه و ساعت هستند
private void timer1_Tick(object sender, EventArgs e)
{
i1++;
s1.Text = i1.ToString("00");
if (i1 == 59)
i1 = -1;
if (i1 == 0)
{
i11++;
m1.Text = i11.ToString("00");
}
if (i11 == 59)
i11 = -1;
if (i11==0 && i1 == 0)
{
i111++;
h1.Text = i111.ToString("00");
}
}
موفق باشید
use of unassigned local variable این error ی هست که از متغیر هام میگیره. مقادیر اولیه i1 و i11 و i111 چی هستند؟
نقل قول: به کار گیری تایمر برای شمارش مخصوص
نقل قول:
نوشته شده توسط
ya30ien2
اینجوری حل میشه
int index = Int32.Parse(lblSecond.Text);
int minute = Int32.Parse(lblMinutes.Text);
int hour = Int32.Parse(lblHour.Text);
if (lblSecond.Text == "0" && lblMinutes.Text != "0")
{
minute--;
index = 60;
lblMinutes.Text = minute.ToString();
lblSecond.Text = index.ToString();
}
if (lblSecond.Text == "0" && lblMinutes.Text == "0" && lblHour.Text != "0")
{
hour--;
minute = 60;
index = 0;
lblMinutes.Text = minute.ToString();
lblSecond.Text = index.ToString();
lblHour.Text = hour.ToString();
}
if (lblSecond.Text != "0")
{
index--;
lblSecond.Text = index.ToString();
}
احسنت. بهتر و کوتاه تر بود . :تشویق:
موفق باشید.
انسان های مدرن متفاوت فکر میکنند. :متفکر: (امین ثریا)