PDA

View Full Version : همزمان کردن حرکت ProgressBar با مدت زمان Load شدن اطلاعات در Listview



Ship Storm
یک شنبه 22 بهمن 1391, 16:39 عصر
سلام
دوستان چطور میتونم حرکت ProgressBarبا مدت زمان Load شدن اطلاعات در Listview خودم هماهنگ کنم ؟
در حال حاضر یک ProgressBar گذاشتم رو فرم ولی همینطوری نمایشی هستش و اصلا هماهنگ نیست با مدت زمان جستجو و نمایش اطلاعات
من یک قسمت از برنامه جستجو گذاشتم و بر اساس گزینه های مختلفی مثل ( نام ، شماره ملی ، تلفن و ...) میاد جستجو رو انجام میده ولی مدت زمان جستجو به علت اینکه در برخی موارد طولانی میشه نیاز به این دارم که ProgressBar خودشو هماهنگ کنه با مدت زمان جستجوی من
قسمتی از کدی که من نوشتم اینطوریه و میخوام تو هیمن قسمت ProgressBar رو با مدت زمان جستجو و نمایش اطلاعات در listview هماهنگ کنه


Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

ListView1.Items.Clear()
Dim Lst As ListViewItem
Dim WHERE As String

If TextBox17.Text <> "" Then

If ComboBox2.Text = "First Name" Then
WHERE = "FirstName Like N'" & TextBox17.Text & "%'"
PubSqlCom.CommandText = "SELECT * FROM AddNewCustomer WHERE " & WHERE
PubSqlCon.ConnectionString = PubStrConString
PubSqlCom.Connection = PubSqlCon
If PubSqlCon.State = ConnectionState.Closed Then PubSqlCon.Open()
PubSqlDR = PubSqlCom.ExecuteReader()

If PubSqlDR.HasRows Then
While PubSqlDR.Read()
Lst = ListView1.Items.Add(PubSqlDR("ID"))
Lst.SubItems.Add(1).Text = (PubSqlDR("ID"))
Lst.SubItems.Add(2).Text = (PubSqlDR("FirstName"))
Lst.SubItems.Add(3).Text = (PubSqlDR("MiddleName"))
Lst.SubItems.Add(4).Text = (PubSqlDR("LastName"))
Lst.SubItems.Add(5).Text = (PubSqlDR("Gender"))
Lst.SubItems.Add(6).Text = (PubSqlDR("BirthYear"))
Lst.SubItems.Add(7).Text = (PubSqlDR("Picture"))
Lst.SubItems.Add(8).Text = (PubSqlDR("IdentificationNumber"))
Lst.SubItems.Add(9).Text = (PubSqlDR("TelPhone"))
Lst.SubItems.Add(10).Text = (PubSqlDR("MobileNumber"))
Lst.SubItems.Add(11).Text = (PubSqlDR("Fax"))
Lst.SubItems.Add(12).Text = (PubSqlDR("PostalCode"))
Lst.SubItems.Add(13).Text = (PubSqlDR("Address"))
Lst.SubItems.Add(14).Text = (PubSqlDR("DentistInfo"))
Lst.SubItems.Add(15).Text = (PubSqlDR("DentistPhone"))
Lst.SubItems.Add(16).Text = (PubSqlDR("DentistAaddress"))
Lst.SubItems.Add(17).Text = (PubSqlDR("DateReceived"))
Lst.SubItems.Add(18).Text = (PubSqlDR("DueDate"))
Lst.SubItems.Add(19).Text = (PubSqlDR("FinishDate"))
Lst.SubItems.Add(20).Text = (PubSqlDR("JobStatus"))
Lst.SubItems.Add(21).Text = (PubSqlDR("TypeOFApplience"))
Lst.SubItems.Add(22).Text = (PubSqlDR("Diagnoses"))
Lst.SubItems.Add(23).Text = (PubSqlDR("AmountCharged"))
End While
Else
MessageBox.Show("Item Not Found", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button3, MessageBoxOptions.RightAlign)
TextBox17.Clear()
End If
End Sub

Saeed_script
یک شنبه 22 بهمن 1391, 19:06 عصر
سلام
اول تعداد کل رکورد های نتیجه رو بدست میاری
"SELECT COUNT(*) FROM AddNewCustomer WHERE " & WHERE
بعد در داخل حلقه while هر دفعه به اندازه 1 واحد به نوار پیشرفت اضافه می کنی
max نوار پیشرفت هم تعداد کل رکورد هاست

Ship Storm
یک شنبه 22 بهمن 1391, 20:53 عصر
با تشکر از پاسخ خوب شما
من الان یک مشکل دارم و اونم اینکه چطور این روش رو توی این کد پیاده سازی کنم

Ship Storm
پنج شنبه 26 بهمن 1391, 08:44 صبح
کسی از دوستان نمیتونه این ویژگی رو به این کد اضافه کنه ؟

Ship Storm
پنج شنبه 26 بهمن 1391, 14:35 عصر
من فکر میکنم یک بوش دیگه هم میشه اعمال کرد و اونم اینه که وقتی روی دکمه جستجو زدیم ProgressBarبصورت متوالی شروع به پر شدن بکنه ( مثل زمان لود شدن ویندوز ) و زمانی که اطلاعات نمایش داده شد روی listview حرکت ProgressBar هم متوقف بشه

Hossis
جمعه 27 بهمن 1391, 07:37 صبح
کسی از دوستان نمیتونه این ویژگی رو به این کد اضافه کنه ؟
به این روش

While PubSqlDR.Read()
progressbar1.value +=1
Lst = ListView1.Items.Add(PubSqlDR("ID"))
.....
End While

Ship Storm
جمعه 27 بهمن 1391, 14:42 عصر
به این روش

While PubSqlDR.Read()
progressbar1.value +=1
Lst = ListView1.Items.Add(PubSqlDR("ID"))
.....
End While


باا این روش یک حالت مصنوعی و نمایشی فقط پیش میاد و اصلا هماهنگ با مدت زمان جستجو و بارگذاری نیست