تصحيح أخطاء عنصر التحكم 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)