PDA

View Full Version : مشكل با progressbar



behroz1387
چهارشنبه 16 بهمن 1387, 00:52 صبح
با سلام
دوستان عزيز من براي زمان لود شدن يك فرم توسط يك دكمه يك progressbar گذاشته ام اما موقعي كه اين دكمه را دو بار كليك مي كنيد برنامه قفل مي كنه لطف مي كنيد كه مشكلم را بگوئيد

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
private System.Windows.Forms.ProgressBar progressBar1;
public Form1()
{
InitializeComponent();
this.progressBar1 = new System.Windows.Forms.ProgressBar();
this.progressBar1.Location = new System.Drawing.Point(12, 12);
this.progressBar1.Name = "progressBar1";
this.progressBar1.Size = new System.Drawing.Size(268, 23);
this.progressBar1.TabIndex = 0;
this.Controls.Add(this.progressBar1);
}
private void button1_Load(object sender, EventArgs e)
{
Thread waitThread = new Thread(new ThreadStart(DoWork));
waitThread.Start();
}
private void DoWork()
{
for (int i = 0; i < 100; i++)
{
this.Invoke(new ThreadStart(SafeCall));
Thread.Sleep(25);
}
MessageBox.Show("OK");
}
private void SafeCall()
{
this.progressBar1.Value++;
}
}
}

shervin_agh67
چهارشنبه 16 بهمن 1387, 01:16 صبح
می تونی در مورد کدی که نوشتی توضیح بدی ؟ چون من فکر می کنم تو از ریسمان برای ساخت splash استفاده کردی .
اگه یک بار کلیک کنی چی ؟ جواب میده ؟
امیدوارم مشکلت crossthread نباشه . (بعید می دونم) .
یک لطفی هم بکن کدت رو تو براکت مخصوص کد قرار بده .

H2K
چهارشنبه 16 بهمن 1387, 13:05 عصر
سلام ،
دوست من درست چون هنوز كاره قبلى تموم نشده باز كليك ميكنى و ميخواى از اول شروع بشه بخاطر همين برنامه قفل ميكنه ،


به نظرِ من راهى كه الان به ذهنم ميرسه اين هست كه :

۱. زمانى كه كار شروع ميشه تا آخرِ كار اون Button رو enable رو false كنى و كار كه تموم شد true كنى .

۲. با text button بعضى كنى يعنى اول مثلا نوشته button1 زمانى كه كليك ميشه text رو عوض كن بشه (wait) بد تو event كليك كه كارتو ميكنى يه if بذار نسبت به text اگه button بود يعنى start بشه و اگه wait بود كه درِ كار ميكنه برنامه و ديگه مشكلى پيش نمياد.


البته حتما راه هاى بهترى هست كه اساتيد ديگه كمك كنن اين دو مورد به zenhe من رسيد كه گفتم بازم چيزى به ذهنم آمد ميگم :لبخندساده:

shervin_agh67
چهارشنبه 16 بهمن 1387, 14:19 عصر
توی این برنامه ما از ریسمانهای جدا استفاده کردیم و نباید کل برنامه قفل کنه . جالبه .