PDA

View Full Version : مبتدی: تعیین ماکزیمم و مینیمم مقدار برای progress bar



forough.tg
پنج شنبه 31 شهریور 1390, 11:22 صبح
چه طوری ماکزیمم و مینیمم مقدار رو برای progress bar ای که توی کد مر بوط به تایمر ایجاد کردم رو تعیین کنم این ارور رو نده
؟
alue of '101' is not valid for 'Value'. 'Value' should be between 'minimum' and 'maximum'.
Parameter name: Value
البته
در اینجا
timer1.interva=100

چه رابطه ای بین تایمر و پروگرس بار ایجاد کنم؟
خواهشا جواب بدید

morteza271
پنج شنبه 31 شهریور 1390, 11:26 صبح
کمترین مقداری که میتونید به پروگرس بار بدین 0 هستش و بیشترین هم 100.
پس شما باید یه جوری داخل تایمرتون به پروگرس بار مقدار بدین که خارج از این بازه نباشه.
مثلا تست کنید اگه بیشتر از 100 بود 100 رو بده!!!

forough.tg
پنج شنبه 31 شهریور 1390, 11:40 صبح
کمترین مقداری که میتونید به پروگرس بار بدین 0 هستش و بیشترین هم 100.
پس شما باید یه جوری داخل تایمرتون به پروگرس بار مقدار بدین که خارج از این بازه نباشه.
مثلا تست کنید اگه بیشتر از 100 بود 100 رو بده!!!




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

forough.tg
پنج شنبه 31 شهریور 1390, 11:45 صبح
جواب منو بدید خواهشا........................من مبتدی هستم ...................:(

morteza271
پنج شنبه 31 شهریور 1390, 11:47 صبح
یعنی چی کجا تعیین کنید؟

ببینید پروگرس بار خودش دوتا خاصیت داره به نام های maximum و minimum که میتونی اینها رو مقداردهی کنی و تغییرش بدی.
برای کنترل هم بستگی به کار شما داره اگه لطف کنید کدی که در مورد پروگرس بار نوشتین رو بذارین راحت تر میتونم کمکتون کنم.

forough.tg
پنج شنبه 31 شهریور 1390, 13:07 عصر
یعنی چی کجا تعیین کنید؟

ببینید پروگرس بار خودش دوتا خاصیت داره به نام های maximum و minimum که میتونی اینها رو مقداردهی کنی و تغییرش بدی.
برای کنترل هم بستگی به کار شما داره اگه لطف کنید کدی که در مورد پروگرس بار نوشتین رو بذارین راحت تر میتونم کمکتون کنم.




private void timer1_Tick(object sender, EventArgs e)
[LTR_INLINE]
}

progressBar1.Value = progressBar1.Value +10 ;
if (progressBar1.Value > 100)
progressBar1.Value = 100;
label1.Text = progressBar1.Value.ToString() + "%";
txtBox1.Text = xx;

}


که این قطعه ی مربوط به تایمر است

morteza271
پنج شنبه 31 شهریور 1390, 13:17 عصر
خوب این که فکر نکنم خطا داشته باشه دیگه، درسته؟؟
این کدی که شما نوشتین بر اساس Interval تایمر پروگرس بار پر میشه و هیچ ربطی به کاری که دارین انجام میدین نداره.
شما میخواین همزمان با انجام کاری پروگرس بار پر بشه؟؟
اگه آره کد اون قسمت رو هم بذارین.

forough.tg
پنج شنبه 31 شهریور 1390, 13:19 عصر
این قسمت کد
progressBar1.Value = progressBar1.Value +10
توی این قسمت این ارور رو میده

Value of '110' is not valid for 'Value'. 'Value' should be between 'minimum' and 'maximum'.
Parameter name: Value

که نمیدونم این ایا ربط داره به timer.interval
که توی برنامه ی من برابر 100

؟

nunegandom
پنج شنبه 31 شهریور 1390, 13:27 عصر
private void Form1_Load(object sender, EventArgs e)
{
progressBar1.Maximum = 100;
timer1.Enabled = true;

}

private void timer1_Tick(object sender, EventArgs e)
{
progressBar1.Value++;
if(progressBar1.Value>=progressBar1.Maximum)
timer1.Enabled = false;
}

forough.tg
پنج شنبه 31 شهریور 1390, 13:29 عصر
ببینید من یه دماسنج ساختم که دمای محیط رو توی کامپیوتر نشون میده
میخوام قبل از انیکه به پروت سریال وصل شم این پروگرس باز پر شه
باید این دستورات رو از تایمر بردارم و توی کلیک دکمه ی connect بذارم ؟

morteza271
پنج شنبه 31 شهریور 1390, 13:31 عصر
شما کدتون رو به صورت زیر تغییر بدین درست میشه :

private void timer1_Tick(object sender, EventArgs e)
{
int val = progressBar1.Value;
val += 10;
if (val >= 100)
val = 100;
progressBar1.Value = val;
label1.Text = progressBar1.Value.ToString() + "%";
txtBox1.Text = xx;
}

چون Interval تایمر شما برابر 100 هست پس هر 100 هزام ثانیه یک بار مقدار پروگرس بارتون با 10 جمع میشه و میره جلو.
برای اینکه بیشتر متوجه بشین مقدار Interval تایمرتون رو تغییر بدین و تست کنید.
مثلا یکبرا برابر 1000 کنید و یک بار برابر 2000 که اولی میشه هر 1 ثانیه و دومی هر 2ثانیه.
موفق باشید