السلام عليكم ورحمة الله وبركاته
سؤالي هو لدي مجموعة من الستخدمين في برنامج مقهى انترنت وعملت لهم 3 متغيرات خاص بالثواني والدقائق والساعات وعملت ذلك كله في تايمر لأني اريد بعد كل 60 ثانية يضيف مثلا
5 ريال في عمود ثاني في ليست فيو ركزوا معي جيدا
لا اربد بعد كل 60 ثانية يضيف 5 ريال لكل المستخدمين وإنما المستخدم الذي بلغت ثوانيه 60 ثانية فقط
واليكم الكودين التاليين
الأول خاص بالعرض قي اللبيت فيو حيث العمود الرابع الوقت الذي دخل فيه والخامس عداد لعد الوقت له
void addtolist(string a,string B)
{
DateTime timec= DateTime.Now;
string t=timec.Hour.ToString()+" :"+timec.Minute.ToString()+" :"+timec.Second.ToString();
//item1.Checked = true;
listView1.Items.Add(a.ToString());
listView1.Items[countlist].SubItems.Add(b.ToString());
listView1.Items[countlist].SubItems.Add("OPEN");
listView1.Items[countlist].SubItems.Add("5");
listView1.Items[countlist].SubItems.Add(t.ToString());
listView1.Items[countlist].SubItems.Add("00 :00 :00");
countlist+=1;
}
الكود التالي الخاص بالتايمر لكل ثانيه
private void timer1_Tick(object sender, System.EventArgs e)
{
try
{
string all,z;
foreach(ListViewItem lv in listView1.Items)
{
if(lv.SubItems[2].Text=="OPEN")
{
//----------------------------------------------
all=lv.SubItems[5].Text.ToString();
h=Int32.Parse(all.Substring(0,2));
m=Int32.Parse(all.Substring(4,2));
s=Int32.Parse(all.Substring(8,2));
s=s+1;
lv.SubItems[5].Text=h.ToString()+" :"+m.ToString()+" :"+s.ToString();
z=lv.SubItems[5].Text.ToString();
if(s==60)
{
m+=1;
lv.SubItems[5].Text=h.ToString()+" :"+m.ToString()+" :"+s.ToString();
}
if(m==60)
{
h+=1;
}
if(h==24)
{
}
//----------------------------------------------
}
}
}
catch
{
MessageBox.Show("false");
timer1.Enabled=false;
timer1.Enabled=true;
}
}
يقوم بزيادة الثواني ويضيف واحد فقط ولا يكمل
لكن هذه الطريقة ما ظبطت او ان هناك خطأ
يقوم بزيادة واحد فقط ثم يذهب الى الكاتش ويظهر رسالة خطأ
فهل هناك طريقة غير هذي لو سمحتوا أو اين الخطأ