تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال حول تهنيج داتا جريد فيو
#1
السلام عليكم
في المرفقات مثال  صغير حيث يتم اضافة 1000 سطر للداتا جريد فيو عند فتح الفورم
المشكلة انه عندما يكون جهاز الكميوتر بوضع توفير الطاقة فانه يحدث تهنيج بسيط في الداتا جريد فيو عند فتح الفورم
هل هناك طريقة لجعل الفورم يفتح بشكل اسرع


الملفات المرفقة
.rar   addrows.rar (الحجم : 27.92 ك ب / التحميلات : 21)
يتوفر لدينا برنامج مبيعات يصلح لاغراض تعليمية وتجارية
الرد }}}
تم الشكر بواسطة:
#2
متابببببببببببببببببع
الرد }}}
تم الشكر بواسطة: ابو انس
#3
وعليكم السلام ورحمة الله وبركاته


يوجد طريقة طبعاً :


قم بإضافة ( Module ) جديد باسم ( Extensions ) : ( حصراً في Module )

قم بإضافة هذا الأمر في الـ( Module )  :

كود :
   <System.Runtime.CompilerServices.Extension>
   Public Sub SetDoubleBuffered(Ctrl As Object)
       Dim CtrlType As Type = Ctrl.[GetType]()
       Dim pi As System.Reflection.PropertyInfo = CtrlType.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
       pi.SetValue(Ctrl, True, Nothing)
   End Sub





الشكل النهائي لكامل الملف كالتالي :
كود :
Public Module Extensions

   <System.Runtime.CompilerServices.Extension>
   Public Sub SetDoubleBuffered(Ctrl As Object)
       Dim CtrlType As Type = Ctrl.[GetType]()
       Dim pi As System.Reflection.PropertyInfo = CtrlType.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
       pi.SetValue(Ctrl, True, Nothing)
   End Sub

End Module









لاحظ السطر :
<System.Runtime.CompilerServices.Extension>
الموجود أعلى الأمر SetDoubleBuffered

هذا السطر مفيد جداً 
يقوم بإضافة أمر جديد لكل الكنترولات الموجودة في الـ NET.
بحيث يمكنك إستدعاء الأمر من داخل المنترول نفسة

مثال :
أريد تسريع ( DataGridView ) ( داتا قريد فيو ) :
من داخل الفورم عند إنشاء الفورم أو الحدث ( New ) قم بإستدعاء هذا الامر لكل كنترول تريد تسريعة
بكل بساطة اكتب اسم الكنترول ثم استدعي الامر من داخل الكنترول نفسة كالتالي :
كود :
Me.UsersDataGridView.SetDoubleBuffered


مثال :
   










SetDoubleBuffered
هذا الأمر يقوم بزيادة الذاكرة العشوائية التي يستخدمها الكنترول ( أي كنترول ,, سواءً فورم , زر , صندوق نص , داتا قريد , وإلخ... من جميع الكنترولات )
عند زيادة الذاكرة العشوائية للكنترول نفسة ,, صبح الكنترول قادرة على إستخدام الذاكرة ( Memory ) بشكل أكبر وذلك مما يساعدة في تسريع العمليات المنفذة في الكنترول
وبالتالي تختفي الرعشة التي تظهر على الكنترول عند إعادة رسمة على الشاشة ,, مثل الداتا قريد فيو ,, عندما تعرض البيانات بشكل كبير فيها تظهر رعشة على الكنترول غير مرغوب فيها أبداً.


كل شيء يسصبح أسرع بعد إستخدام هذا الأمر على كل كنترول تريد تسريعة أو يظهر لك بطئ في الإستجابة.
حتى الفورم يمكن تسريعة إذا كان يحتوي على كنترولات كثيرةز

ستتفاجاء من سرعة الكنترول بعد إستخدام هذة الطريقة


تحياتي ...
الرد }}}
#4
شكرا لك .........

فقط سؤال لوسمحت اين اجد الحدث NEW انا استخد م فيجوال ستيدو 2015 ولم اجده
يتوفر لدينا برنامج مبيعات يصلح لاغراض تعليمية وتجارية
الرد }}}
تم الشكر بواسطة:
#5
استخدمت الحدث LOAD ونجح الامر
بالفعل كود رائع
شكرا لك
يتوفر لدينا برنامج مبيعات يصلح لاغراض تعليمية وتجارية
الرد }}}
تم الشكر بواسطة:
#6
استكمالا للمشاركة الرائعة وبعد اذن صاحبها
اقول
يا اخالد20 افعل مثلما قال عبد الله في مشاركته ولكن في حدث LOAD للفورم ضع الكود التالي
كود :
     For Each AA As Control In ME.Controls
               AA.SetDoubleBuffered()
           Next
وهكذا يتم تطبيق الامر على جمييع الادوات في الفورم
سورس كود برنامج محاسبة ومبيعات احترافي  -  سورس كود تطبيق ارسال رصيد من الجوال B4A
سورس كود تطبيق مبيعات للجوال
تيليجرام   Abo_anas_kahwaji@
واتساب 00963951283515
الرد }}}
تم الشكر بواسطة: خالد20
#7
(26-01-22, 10:00 PM)ابو انس كتب : استكمالا للمشاركة الرائعة وبعد اذن صاحبها
اقول
يا اخالد20 افعل مثلما قال عبد الله في مشاركته ولكن في حدث LOAD للفورم ضع الكود التالي
كود :
     For Each AA As Control In ME.Controls
               AA.SetDoubleBuffered()
           Next
وهكذا يتم تطبيق الامر على جمييع الادوات في الفورم

تمام شكرا لك
يتوفر لدينا برنامج مبيعات يصلح لاغراض تعليمية وتجارية
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مساعدة في حل سؤال بخصةص عرض الوقت عبدالكريم برشدان 2 100 12-04-24, 03:05 PM
آخر رد: عبدالكريم برشدان
  مشكلة فى جمع عمود فى داتا جريد فيو احمد خطاب 3 164 06-03-24, 07:49 PM
آخر رد: احمد خطاب
  حذف الاسطر الفارغه من الداتا جريد فيو اليوم السابع 3 2,382 03-03-24, 12:57 AM
آخر رد: مصمم هاوي
  كيفية جمع أرقام عمود فى الداتا جريد فيو بناءاً على بيانات معينة heem1986 5 239 25-02-24, 11:26 PM
آخر رد: heem1986
  [C#.NET] طباعة بيانات داتا جرد فيو h2551996 0 95 25-02-24, 02:31 PM
آخر رد: h2551996
  كيفية تنفيذ امر عند التعليم على checkbox بالداتا جريد فيو heem1986 2 162 21-02-24, 01:37 AM
آخر رد: heem1986
  سؤال عن عملية حذف سجل من قاعدة البيانات assuhimi 3 264 11-02-24, 08:43 PM
آخر رد: assuhimi
Big Grin [سؤال] سؤال على السريع أبو خالد الشكري 0 188 29-01-24, 08:58 AM
آخر رد: أبو خالد الشكري
  [VB.NET] ستايل داتا جرد فيو h2551996 10 355 17-01-24, 02:52 PM
آخر رد: aljzazy
  سؤال بسيط يا احبتى فى الله خالد كامل1 4 318 07-01-24, 12:55 AM
آخر رد: Mujahef

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم