تصحيح أخطاء عنصر التحكم DataRepeater (‏‫Visual Studio)

يسرد هذا موضوع المشكلات الشائعة التي قد تحدث عند استخدام عنصر تحكم DataRepeater .

لوحة مفاتيح DataRepeater و أحداث الماوس لا تُرفع

بعض أحداث عنصر تحكم DataRepeater ، مثل لوحة المفاتيح و أحداث الماوس ، لا يتم تشغيلها . يرجع ذلك إلى التصميم. عنصر التحكم DataRepeater نفسه يعتبر بمثابة حاوية لكائنات DataRepeaterItem و لا يمكن الوصول إليها في وقت التشغيل . DataRepeaterItem لا يقوم بالكشف عن الأحداث في وقت التصميم. و لذلك، لا يؤدي النقر فوق أحد العناصر أو ضغط المفتاح عندما يكون التركيز على العنصر إلى تنفيذ الحدث .

يكون ‏‏الاستثناء لهذا عند تعيين خاصية Padding إلى قيمة كبيرة كافية لعرض حواف عنصر تاتحكم DataRepeater . و في هذه الحالة، النقر فوق الهامش المكشوف سوف يرفع أحداث الماوس .

لحل هذه المشكلة، قم بإضافة عنصر التحكم Panel إلى مقطع ItemTemplate لعنصر تحكم DataRepeater ، ثم أضف بقية عناصر التحكم إلى Panel . ثم يمكنك إضافة التعليمات ابرمجية إلى معالجات أحداث عنصر التحكم Panel لأحداث لوحة المفاتيح و الماوس .

DataRepeater مخفي جزئياً خلف متنقل الربط

عندما تقوم أولاً بإضافة عنصر التحكم DataRepeater إلى نموذج ثم إضافة عناصر تحكم ربط البيانات من نافذة مصادر البيانات ، قد يظهر عنصر التحكم BindingNavigator في أعلى عنصر التحكم DataRepeater . و هذا قيد معروف لنافذة مصادر البيانات و متناسق مع سلوك عناصر التحكم الأخرى، مثل عنصر تحكم DataGridView .

يمكنك إما نقل DataRepeater أقل من عنصر تحكم BindingNavigator في وقت التصميم أو إضافة التعليمات البرمجية المشابهة للتالي في معالج الأحداث Load .

DataRepeater1.Top = ProductsBindingNavigator.Height
dataRepeater1.Top = productsBindingNavigator.Height;

لا يتم عرض عناصر التحكم بشكل صحيح في وقت تشغيل

بعض عناصر التحكم في عنصر التحكم DataRepeater قد يتعذّر عرضها كما هو متوقع في وقت التشغيل . و العملية المستخدمة لاستنساخ عناصر التحكم من ItemTemplate إلى DataRepeaterItem لا يمكنها دائماً تحديد كل الخصائص لكل عناصر التحكم . و على سبيل المثال، إذا قمت بإضافة عنصر تحكم ListBox غير منضم إلى عنصر تحكم DataRepeater في وقت التصميم و نشر مجموعة Items الخاصة به مع قائمة السلاسل، ستكون ListBox فارغة في وقت التشغيل . وهذا لأنه يتعذر على عملية الاستنساخ وضع خاصية Items في الاعتبار .

إصلاح مشاكل مثل هذه عن طريق استعادة الخصائص المفقودة في حدث ItemCloned الذي يحدث بعد اكتمال الاستنساخ الافتراضي . و يوضح المثال التالي كيفية إصلاح مجموعة Items من عنصر التحكم ListBox في معالج الحدث ItemCloned .

Private Sub DataRepeater1_ItemCloned(
    ByVal sender As Object, 
    ByVal e As Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs
  ) Handles DataRepeater1.ItemCloned

    Dim Source As ListBox = 
        CType(DataRepeater1.ItemTemplate.Controls.Item("ListBox1"), ListBox)
    Dim ListBox1 As ListBox = 
        CType(e.DataRepeaterItem.Controls.Item("ListBox1"), ListBox)
    For Each s As String In Source.Items
        ListBox1.Items.Add(s)
    Next
End Sub
private void dataRepeater1_ItemCloned(object sender, 
    Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs e)
{
    ListBox Source = (ListBox)dataRepeater1.ItemTemplate.Controls["listBox1"];
    ListBox listBox1 = (ListBox)e.DataRepeaterItem.Controls["listBox1"];
    foreach (string s in Source.Items)
    {
        listBox1.Items.Add(s);
    }
}

رمز التحديد في عنوان العنصر مفقود

عندما تقوم بتغيير خاصية SelectionColor لعنوان العنصر في عنصر تحكم DataRepeater ، قد تؤدي بعض خيارات اللون إلى اختفاء رمز التحديد . تغيير خاصية ItemHeaderSize قد يؤدي أيضًا إلى عدم ظهور رمز التحديد .

لا يمكن تغيير اللون و الحجم لرمز التحديد .

  • إذا قمت بتعيين SelectionColor إلى White، لن يظهر الرمز المحدد عند تحديد العنصر أولاً .

  • إذا قمت بتعيين SelectionColor إلى Black، لن يظهر رمز التحديد عند تحديد عنصر التحكم ، و لن يظهر رمز القلم عندما يكون عنصر تحكم في وضع التحرير .

  • إذا تم تعيين خاصية ItemHeaderSize إلى قيمة أقل من 11, لن يتم عرض رموز المؤشر في عنوان العنصر .

يمكنك توفير عنوان العنصر الخاص بك و رمز التحديد باستخدام عنصر التحكم PictureBox و مراقبة خاصية IsCurrent لـ DataRepeaterItem في حدث DrawItem لعنصر التحكم DataRepeater . لمزيد من المعلومات، راجع IsCurrent.

راجع أيضًا:

المهام

كيفية القيام بما يلي: عرض البيانات المرتبطة في عنصر تحكم DataRepeater (‏‫Visual Studio)

كيفية القيام بما يلي: عرض البيانات الغير مرتبطة في عنصر تحكم DataRepeater (‏‫Visual Studio)

كيفية القيام بما يلي: تغيير تخطيط عنصر التحكم DataRepeater (‏‫Visual Studio)

كيفية القيام بما يلي: تغيير مظهر عنصر تحكم DataRepeater (‏‫Visual Studio)

كيفية القيام بما يلي: عرض رؤوس العنصر في عنصر التحكم DataRepeater (‏‫Visual Studio)

كيفية القيام بما يلي: تعطيل إضافة و حذف عناصر DataRepeater (‏‫Visual Studio)

كيفية القيام بما يلي: بحث عن البيانات في عنصر تحكم DataRepeater (‏‫Visual Studio)

كيفية القيام بما يلي: إنشاء نموذج رئيسي/تفصيلي عن طريق استخدام عنصرا التحكم DataRepeater (‏‫Visual Studio)

المبادئ

مقدمة إلى عنصر التحكم DataRepeater (‏‫Visual Studio)