PDA

View Full Version : مشکل در الگوریتم ساخت تایمر در #C



mehdi8
پنج شنبه 28 خرداد 1394, 10:49 صبح
با سلام به همه دوستان عزیز من سوالی دارم به شرح زیر:
من در برنامم یک باتن دارم و یک لیست باکس ; که این لیست باکس حاوی تعداد نامعلوم و زیادی آیتمه.
میخوام وقتی روی باتن کلیک کردم به تعداد آیتم ها در برنامه ام تایمر ایجاد بشه(و در هر جای برنامه بتونم به اون تایمر ها دسترسی داشته باشم) و خاصیت interval همشون مثلا 3000 باشه و و ترتیب نام تایمر ها بصورت زیر هماهنگ با شماره ردیف آیتم های لیست باکس باشه:
p0
p1
p2
p3
.
.
.

و نکته اصلی این که همونجا رویداد thik تایمر ها (که هرکدوم مختص به خودشونه) تعریف بشه.
مثلا برای p0 به این صورت:

messageBox.Show("listBox1.items[0]");


و p1 هم به همین صورت:



messageBox.Show("listBox1.items[1]");



و الی آخر (تا جایی که این دستور برای تمام تایمر های ایجاد شده به تعداد آیتم های لیست باکس انجام شود)

دوستان برای این عملیات باید چکار کنم؟ممنون میشوم اگر منو راهنمایی کنید.
و ممنون که وقت گذاشتید و خوندید.

hamid_hr
پنج شنبه 28 خرداد 1394, 11:32 صبح
اگه مقصودت فقط نشون دادن اون مسیج هست اینطوری میشه
تو رویداد کلیک بانت بنویس

for (int i = 0; i < listBox1.Items.Count; i++)
{
Timer tm = new Timer();
tm.Interval = 3000;
tm.Tick += tm_Tick;
tm.Tag = "listBox1.items[" + i + "]";
}


و اینم رویداد tick تایمر

void tm_Tick(object sender, EventArgs e)
{
MessageBox.Show(((Timer)sender).Tag.ToString());
}

mehdi8
پنج شنبه 28 خرداد 1394, 13:35 عصر
اگه مقصودت فقط نشون دادن اون مسیج هست اینطوری میشه
تو رویداد کلیک بانت بنویس

for (int i = 0; i < listBox1.Items.Count; i++)
{
Timer tm = new Timer();
tm.Interval = 3000;
tm.Tick += tm_Tick;
tm.Tag = "listBox1.items[" + i + "]";
}


و اینم رویداد tick تایمر

void tm_Tick(object sender, EventArgs e)
{
MessageBox.Show(((Timer)sender).Tag.ToString());
}

مقصودم فعلا مسیج باکس هست.
از کدت استفاده کردم اما وقتی روی باتن کلیک میکنم هیچ اتفاقی نمیفته.
اگه ممکنه یه سورس از این کد لطف کن.ممنون.

hamid_hr
پنج شنبه 28 خرداد 1394, 14:00 عصر
اها
اینو زمان ساخت تایمر بزن
tm.Enabled = true;

mehdi8
پنج شنبه 28 خرداد 1394, 20:03 عصر
فقط یک مشکل در این کد پایین قرار است بجای شماره آن آیتم محتوای آن آیتم نمایش داده بشه.ممنون میشم اگه راهنماییم کنید.



MessageBox.Show(((Timer)sender).Tag.ToString());