PDA

View Full Version : حرفه ای: نمایش دادن میزان فعالیت انجام شده با ProgressBar



kh1387
پنج شنبه 20 خرداد 1389, 22:29 عصر
با سلام
در یکجایی از برنامه ام کار مرتب سازی و حذف رو انجام میدم در بین مثلا 20000 آیتم لیست باکس.
میخوام هنگامیکه در حال انجام این عمل هستم به کاربر میزان پیشرفت انجام کار رو نمایش بدم.
دوستان لطف کنند راهنمایی کنند.
متشکرم


listBox1.Sorted = true;
for (Int32 i = 0; i < listBox1.Items.Count; i++)
{
for (int j = 0; j < listBox1.Items.Count; j++)
{
if (i != j)
{
if (listBox1.Items[i].ToString().Trim() == string.Empty)
{
listBox1.Items.RemoveAt(i);
continue;
}
if (listBox1.Items[i].ToString().Trim() ==
listBox1.Items[j].ToString().Trim())
{
listBox1.Items.RemoveAt(i);
continue;
}
}
}
}
txtNumListBox.Text = listBox1.Items.Count.ToString();

این کد قسمتیه که باید عمل حذف رو انجام بده.
چه کدی و در کجای آن باید بنویسم؟

behzadk
پنج شنبه 20 خرداد 1389, 22:47 عصر
اولش باید تعداد list رو بر 100 تقسم کنی و بعد در انتهای حلقه اولی به value ی progressbar اضافه کنی
همین

kh1387
جمعه 21 خرداد 1389, 01:02 صبح
اولش باید تعداد list رو بر 100 تقسم کنی و بعد در انتهای حلقه اولی به value ی progressbar اضافه کنی
همین
میشه بیشتر توضیح بدید؟
ممنونم

reza_stb2002
جمعه 21 خرداد 1389, 01:50 صبح
سلام
ببین اگه بخوایم میزان پیشرفت forدرونیتو حساب کنیم باید تعداد for های انجام شده رو تقسیم بر تعداد کل for هایی که قراره انجام بشه بکن بعد ضرب در صد بکن مثل کد زیر
یا علی


listBox1.Sorted = true;
for (Int32 i = 0; i < listBox1.Items.Count; i++)
{
for (int j = 0; j < listBox1.Items.Count; j++)
{
if (i != j)
{
if (listBox1.Items[i].ToString().Trim() == string.Empty)
{
listBox1.Items.RemoveAt(i);
continue;
}
if (listBox1.Items[i].ToString().Trim() ==
listBox1.Items[j].ToString().Trim())
{
listBox1.Items.RemoveAt(i);
continue;
}
}
}
Progressbar1.value=(int)(((double)i/listBox1.Items.Count)*100);
}
txtNumListBox.Text = listBox1.Items.Count.ToString();

محمد متاله
جمعه 21 خرداد 1389, 03:56 صبح
احتیاج به تقسیم و این جور چیزها نیست
تعداد آیتم ها را در خاصیت ماکزیمم و مقدار صفر را در خاصیت مینیمم Progress قرار بده
قبل از اینکه برنامه کارش را شروع کند باید خاصیت visible آن fakse باشد
وقتی قطعه کند می خواهد شروع شود Visible را true می کنید
در حلقه ای که مقایسه را انجام می دهید در هر بار یکی به مقدار Value آن اضافه می کنید و هنگامی که قطعه کد تمام می شود خاصیت visible آن را دوباره false می کنید
فقط همین