PDA

View Full Version : سوال: ایراد در کد تایمر



مهدی نصیری
یک شنبه 06 مهر 1393, 00:50 صبح
با سلام خدمت دوستان

من این تیکه کد را دارم منطق آن درست می باشد ولی با این پیغام خطا مواجه می شوم.چرا


[CSHARP]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace Timer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = true;
progressBar1.Value += 10;
if (progressBar1.Value == 100)
{
MessageBox.Show(" با موفقیت انجام شد");

timer1.Enabled = false;
//progressBar1.Value -= 100;

}


}


private void Form1_Load(object sender, EventArgs e)
{


}



}
}

وپیغام خطا


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

mohammad272005
یک شنبه 06 مهر 1393, 01:02 صبح
تنها دلیلی که به نظر من میرسه اینه که شما با progressBar1.Value = 100 شروع میکنید. واسه محکم کاری، توی Form1_Load، کد progressBar1.Value = 0 رو بنویسید.

مهدی نصیری
یک شنبه 06 مهر 1393, 01:07 صبح
دوست عزیز اگر تو کد نگاه کرده باشی اول با مقدار 10 شروع کردم و تو شرطم گفتم اگر برابر 100 پیغام بده ودر نهایت دیگر نباید ان کد اجرا شود ولی در پیغام خطا می گوید مقدار تو از 100 بیشتر شده است

sadegh.javan
یک شنبه 06 مهر 1393, 01:08 صبح
چون اول اضافه میکنی بعد چک میکنی چنده!
بجای کد :



progressBar1.Value += 10; if (progressBar1.Value == 100)
{
MessageBox.Show(" با موفقیت انجام شد");

timer1.Enabled = false;
//progressBar1.Value -= 100;

}


بنویس :

[CODE]
if (progressBar1.Value == 100)

{
MessageBox.Show(" با موفقیت انجام شد");

timer1.Enabled = false;
//progressBar1.Value -= 100;

}

progressBar1.Value += 10;
[CODE/]

مهدی نصیری
یک شنبه 06 مهر 1393, 01:11 صبح
خوب من در اینجا شرط گزاشتم پس نباید مشکلی باشه

sadegh.javan
یک شنبه 06 مهر 1393, 01:14 صبح
اول شرط رو چک کن بعدش ده رو اضافه کن

sadegh.javan
یک شنبه 06 مهر 1393, 01:16 صبح
چجوری کد رو درست میذارین؟ من که هر کاری میکنم کد هام رو تو پست ها درست نمایش نمیده
:گریه::گریه:

مهدی نصیری
یک شنبه 06 مهر 1393, 01:20 صبح
من قبلا این کارو کردم می دونی چه اتفاقی می افته برنامه اجرا می شود ولی مدام پیغام مسیج باکس را ظاهر می کن بصورت پی در پی

مهدی نصیری
یک شنبه 06 مهر 1393, 01:22 صبح
به نظرم بعد از این کارها تایمر متوقف نمی شود

mohammad272005
یک شنبه 06 مهر 1393, 01:22 صبح
شما با 10 شروع نکردی. به مقدار قبلی (که شاید 100 بوده) 10تا اضافه کردی. کد منو تست کن لطفاً

مهدی نصیری
یک شنبه 06 مهر 1393, 01:28 صبح
شما با 10 شروع نکردی. به مقدار قبلی (که شاید 100 بوده) 10تا اضافه کردی. کد منو تست کن لطفاًدر فرم

اول با 10 شروع نکردی یعنی چه

دوم در فرم لود مقدار نوار میله ای را برابر 0 کردم ولی نشد همان پیغام را می دهد

mohammad272005
یک شنبه 06 مهر 1393, 01:41 صبح
یه احتمال دیگه هم هست. کد بعد از خط MessageBox.Show(" با موفقیت انجام شد"); اتفاق نمیافته، مگه اینکه کلید اوکی رو بزنید. حالا، اگه قبل از فسار دادن کلید اوکی، interval بعدی اتفاق بیفته، هنوز مقدار Value صفر نشده. پس 10تا بهش اضافه میشه

sadegh.javan
یک شنبه 06 مهر 1393, 01:43 صبح
دو تا کار انجام بده
اول اینکه اونجایی که تایمر رو استارت میکنی قبلش مقدار پروگرس بار رو صفر کن و دوما کد رو اینگونه تغییر بده ببین درست میشه ؟ :


timer1.Enabled=true;
if(progressBar.Value==100)
{
MessageBox.show(.....
progressbar.value=0;
timer.Enabled=false;
}
if(timer.Enabled)
progressbar.Value+=10;




:لبخند: فقط این شبه کد دیگه ، خدت زحمت درست نوشتنشو بکش :چشمک:

مهدی نصیری
دوشنبه 07 مهر 1393, 00:18 صبح
با سلام

من یک بار در فرم لود مقدار نوار میله ای را صفر کردم نشد و هم در خود تکه کد تایمر باز هم نشد

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

sadegh.javan
دوشنبه 07 مهر 1393, 01:50 صبح
کدی که گفتم رو زدی ؟

نکته رو گفتم دیگه! دقت کن :





...
if(timer.Enabled)
progressbar.Value+=10;






ترتیب کدها هم مهم!

hamid_hr
دوشنبه 07 مهر 1393, 11:46 صبح
اول تایمرو از کار بنداز بعد مسیجو نشون بده



timer1.Enabled = false;
MessageBox.Show(" با موفقیت انجام شد");

مهدی نصیری
چهارشنبه 09 مهر 1393, 00:51 صبح
تشکر از همه دوستان و همچنین اقای hamid_hr


نکته این مسئله دقیقا در همین تکه کد بالا می باشد که باید تایمر را سریع خاموش کرد و بعد دنبال دستورات دیگه رفت.