PDA

View Full Version : كار با Progressbar



golnouri
چهارشنبه 23 تیر 1389, 18:09 عصر
دوستان من مي خواهم تو فرمم يك Progress bar از اول تا آخر پر بشه.
بايد چيكار كنم؟

behnam25214
چهارشنبه 23 تیر 1389, 18:25 عصر
خوب یه تایمر بزار بعدش بعد هر ثانیه یا هر زمانی که دوست داری یکی یکی اضافه بشه تا آخر.

mahdi_7610
چهارشنبه 23 تیر 1389, 18:37 عصر
سلام

بفرمایید

golnouri
چهارشنبه 23 تیر 1389, 18:49 عصر
سلام

بفرمایید
باز نميكنه فايلتون و اگه مي تونيد كدش و بنويسيد. همينجا.

mahdi_7610
چهارشنبه 23 تیر 1389, 19:22 عصر
احتمالا شما از vs2005 استفاده می کنید .

ابتدا یک BackgroundWorker و یک ProgressBar و یک Button روی فرم قرار بدید .

این مقادیر را داخل کلاس فرم تعریف کنید



public bool FLAG = true;
public long MAX = 200000000;


توی رویداد DoWork مربوط به backgroundWorker1 مقادیر زیر را وارد کنید .




private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
int i = 1;
for (long l = 0; l < MAX; l++)
{
if (l == (long)(MAX / 100) * i)
{
backgroundWorker1.ReportProgress(i);
i++;
}
}
}


همچنین توی رویداد ProgressChanged کدهای زیر را قرار بدید




private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
prgsBar.Value = e.ProgressPercentage;
this.Update();
}



توی رویداد RunWorkerCompleted کدهای زیر را وارد کن




private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
FLAG = true;
}


کدهای زیر را هم به رویداد کلیک باتن نسبت بده




private void button_Click(object sender, EventArgs e)
{
if (FLAG)
{
backgroundWorker1.RunWorkerAsync();
FLAG = false;
}
}


اسم progressBar را prgsBar بزار

و خاصیت workerReportProgess مربوط به backgroundWorker را true کن




موفق باشی

mehdikhazaei
چهارشنبه 23 تیر 1389, 23:31 عصر
کاربر hossein-ignore یک فایل آموزشی درباره progressbar چند روز پیش ارسال کرده بودند
اگه در چند صفحه قبل جستجو کنید پیدا می کنید.
خیلی مفیده.