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

أظهار Loading Panel أثناء أجراء عملية معينه

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

السلام عليكم ورحمة الله وبركاته

أريد أن أعرف كيفية أظهار Panle بها Image loading مثل الAjax فى ASP.net أو الويب عموما ولكن فى windowsApplication لتظهر هذه الصورة أثناء القراءة من ملف تكست وتحميل البيانات فى rich text box أعتقد أنني سوف أستخدم threading ولكن عندما قمت بأستخدامه ظهر لي Error (Cross-thread operation not valid: Control 'SqlTextBox' accessed from a thread other than the thread it was created on)

والكنترول فى المرفقات أرجو المساعدة و شكرا

WindowsControlLibrary1.rar

#2

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

#3

مش معقوله يا جماعه 36 واحد شاف الموضوع ومقلش ولو حتى فكره

#4

السلام عليكم

انا ممكن مافيدكش اوي بس اللي اقدر عليه ان المشكلة اللي ظهرتلك دي عند استخدامك للسيرد دي فعلا مشكلة مشهورة جدا لمستخدمي السريد

فعليك بالبحث عن Cross-thread operation not valid لتجد الحل اذا كنت تريد استخدام طريقتك هذه

اما عن الطريقة التانية وه استخدامك للأداه BackgroundWorker اعتقد انها هي المسئولة عن ماذا تريد فابحث عنها هي الاخرى

معلش اني مافصلتلكش كيفية التعامل بالتفصيل مع الإقتراحين لأني قابلتهم على النت منذ فترة وتجاهلتهم :S

Mohamed Ali Salim

0.1..0...4....7.....6......2.......7........4.........8

#5

يمكنك استخدام progressBar Control

#6

try to have a look at the backgroundworker component it might help u

Sami is the name .net is the game

SamiKaraeen@hotmail.com

#7

Hi Brother .

You can do that by using a ( Delegate Sub ) >> something like this :

Imports System.Threading

Public Class Form1

Public Delegate Sub DLGValueChangeed(ByVal Value As Integer)

Private _ValueChanged As DLGValueChangeed = New DLGValueChangeed(AddressOf ValueChanged)

Private Sub ValueChanged(ByVal Value As Integer)

Me.Text = Value

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim _Thread As New Thread(AddressOf CountUP)

_Thread.Priority = ThreadPriority.BelowNormal

_Thread.Start()

End Sub

Sub CountUP()

For I As Integer = 0 To 100000000

Invoke(_ValueChanged, I)

Next

End Sub

End Class

Best Regards,

BasharVS .

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#8

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــه

أخي الحبيب الحل كالتالي ....

ضع السطر التالي داخل ال Thread Function

CheckForIllegalCrossThreadCalls = False

جرب ...

سأشرح هذه المشكلة بشكل أوفى لاحقا ...

بالتوفيق للجميع ...

دعائكم ...

سبحان الله وبحمده سبحان الله العظيم

لا تنسونا من صالح دعائكم ...

وفقكم الله وسدد خطاكم ...

#9

اخي الكريم اريد ان اشرح لك امرا لعلك تصل للحل

عند تشغيل اي برنامج تشتغل ثريد رئيسية هي المسئولة عن رسم الكنترولز فاذا اردت ان تستخدم ثريد جديدة للتعديل على اي كنترول ستظهر لك الرسالة اللتي عرضتها

فبالتالي تحتاج الى استخدام ما اشار اليه احد الاخوان وهو Delegate

لتتمكن من اجراء اي تعديل على الكنترولز

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

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