الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اعمل شاشة انتظار

بدأه fhmi في 26 يوليو 2008 · 3 رد · 1,116 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أخواني الاعزاء

عندي استفسار

لدي برنامج يقوم بجلب بعض البيانات من قاعدة البيانات المخزنه في السيرفر

وقد تستغرق وقتا طويلا في بعض الاحيان

أريد أن اعمل شاشة انتظار

أو كتابة عباره تفيد بجلب البيانات الا ان يتم جلب جميع البيانات من السيرفر

حاولت كثيرا بوضع فلاش معين أو ولكن لا تظهر الا بعد جلب البيانات مع العلم أن امر اظهار الفلاش قبل أمر جلب البيانات

وضعت sleep للبرنامج بعد امر اظهار الفلاش وبعد ذلك أمر جلب البيانات ولكن لا فائده :S

أرجو المساعده

تم تعديل هذه المشاركة بواسطة fhmi في 27 يوليو 2008 في 00:00

Logo_460_60.gif
#3
hazzoom كتب:
BackgroundWorker

شكرا لك أخي 'hazzoom' على ردك السريع

هل بالامكان وضع مثال بسيط ولو بطريقة عمل بسيطه توضح عمل هذه الاداة

شكرا لك مجددا :happy:

Logo_460_60.gif
#4

الحل بالكامل

والشكر مجددا للاخ 'hazzoom'

upload2world_8a3f3.png

Imports System
Imports System.Data
Imports System.Collections
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Data.SqlClient


Public Class Form1
	' Start the long process.
	Private Sub btnStartProcess_Click(ByVal sender As System.Object, ByVal e as System.EventArgs) Handles btnStartProcess.Click
		' Get ready.
		btnStartProcess.Enabled = False
		btnCancel.Enabled = True
		prgLongProcess.Value = 0

		' Start the worker.
		bgrLongProcess.WorkerReportsProgress = True
		bgrLongProcess.WorkerSupportsCancellation = True
		bgrLongProcess.RunWorkerAsync()
	End Sub

	' Cancel the long process.
	Private Sub btnCancel_Click(ByVal sender As System.Object, _
	 ByVal e As System.EventArgs) Handles btnCancel.Click
		bgrLongProcess.CancelAsync()
	End Sub

	' Display the progress.
	Private Sub bgrLongProcess_ProgressChanged(ByVal sender As Object, _
	 ByVal e As System.ComponentModel.ProgressChangedEventArgs) _
	 Handles bgrLongProcess.ProgressChanged
		prgLongProcess.Value = e.ProgressPercentage
	End Sub

	' The worker is done.
	Private Sub bgrLongProcess_RunWorkerCompleted(ByVal sender As Object, _
	 ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) _
	 Handles bgrLongProcess.RunWorkerCompleted
		btnStartProcess.Enabled = True
		btnCancel.Enabled = False
	End Sub

	Private Sub bgrLongProcess_DoWork(ByVal sender As Object, _
	 ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgrLongProcess.DoWork
		For i As Integer = 1 To 10000

			For j As Integer = 1 To 10000

			Next j
			If bgrLongProcess.CancellationPending Then Exit Sub

			bgrLongProcess.ReportProgress(CInt(100 * i / 10000))
		Next i
	End Sub

End Class

والرابط كاملا من الموقع للاستفاده

الرابط

تم تعديل هذه المشاركة بواسطة fhmi في 27 يوليو 2008 في 08:28

Logo_460_60.gif

مواضيع مشابهة