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

و يمكنك تغيير مظهر عنصر التحكم DataRepeater وقت التصميم عن طريق تعيين الخصائص أو في وقت التشغيل عن طريق معالجة حدث DrawItem.

و الخصائص التي قمت بتعيينها في وقت التصميم عند تحديد مقطع قالب العنصر لعنصر التحكم سيتم تكرارها لكل DataRepeaterItem في تشغيل الوقت . و خصائص المظهر ذات الصلة لعنصر التحكم DataRepeater نفسه ستكون مرئية في وقت التشغيل فقط إذا ترك جزء من الحاوية بدون تغطية (على سبيل المثال، إذا تم تعيين خاصية Padding إلى قيمة كبيرة ).

و في وقت التشغيل ، خصائص المظهر ذات الصلة يمكن تعيينها استناداً إلى الشروط . و على سبيل المثال، في التطبيق المجدول يمكنك تغيير لون خلفية العنصر لتنبيه المستخدمين عندما يكون العنصر بعد الاستحقاق. و في معالج الحدث DrawItem ، في حالة تعيين الخاصية في كشف شرطي مثل If…Then ، يجب عليك أيضاً استخدام جملة Else لتحديد الشكل عندما لا يتحقق الشرط.

و لتغيير المظهر في وقت التصميم

  1. في مصمم Windows Forms ، حدد منطقة قالب العنصر (العلوية) من عنصر تحكم DataRepeater .

  2. في نافذة الخصائص ، حدد الخاصية و غير القيمة. و الخصائص الشائعة التي تؤثر على المظهر تتضمن BackColor, و BackgroundImage, و BorderStyle، و ForeColor.

و لتغيير المظهر في وقت التشغيل

  1. في محرر التعليمات البرمجية في قائمة الحدث المنسدلة ، انقر فوق DrawItem.

  2. في معالج الأحداث DrawItem قم بإضافة تعليمات برمجية لتعيين الخصائص:

    ' Set the default BackColor.
    e.DataRepeaterItem.BackColor = Color.White
    ' Loop through the controls on the DataRepeaterItem.
    For Each c As Control In e.DataRepeaterItem.Controls
        ' Check the type of each control.
        If TypeOf c Is TextBox Then
            ' If a TextBox, change the BackColor.
            c.BackColor = Color.AliceBlue
        Else
            ' Otherwise use the default BackColor.
            c.BackColor = e.DataRepeaterItem.BackColor
        End If
    Next
    
    // Set the default BackColor.
    e.DataRepeaterItem.BackColor = Color.White;
    // Loop through the controls on the DataRepeaterItem.
    foreach (Control c in e.DataRepeaterItem.Controls)
    {
        // Check the type of each control.
        if (c is TextBox)
        // If a TextBox, change the BackColor.
        {
            c.BackColor = Color.AliceBlue;
        }
        else
        {
            // Otherwise use the default BackColor.
            c.BackColor = e.DataRepeaterItem.BackColor;
        }
    }
    

مثال

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

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

    ' Alternate the back color.
    If (e.DataRepeaterItem.ItemIndex Mod 2) <> 0 Then
        ' Apply the secondary back color.
        e.DataRepeaterItem.BackColor = Color.AliceBlue
    Else
        ' Apply the default back color.
        e.DataRepeaterItem.BackColor = Color.White
    End If
    ' Change the color of out-of-stock items to red.
    If e.DataRepeaterItem.Controls(
          UnitsInStockTextBox.Name).Text < 1 Then

        e.DataRepeaterItem.Controls(UnitsInStockTextBox.Name). 
         BackColor = Color.Red
    Else
        e.DataRepeaterItem.Controls(UnitsInStockTextBox.Name). 
         BackColor = Color.White
    End If
End Sub
private void dataRepeater1_DrawItem(object sender, 
    Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs e)
{
    // Alternate the back color.
    if ((e.DataRepeaterItem.ItemIndex % 2) != 0)
    // Apply the secondary back color.
    {
        e.DataRepeaterItem.BackColor = Color.AliceBlue;
    }
    else
    {
        // Apply the default back color.
        e.dataRepeaterItem.BackColor = Color.White;
    }
    // Change the color of out-of-stock items to red.
    if (e.DataRepeaterItem.Controls["unitsInStockTextBox"].Text == "0")
    {
        e.DataRepeaterItem.Controls["unitsInStockTextBox"].BackColor = Color.Red;
    }
    else
    {
        e.DataRepeaterItem.Controls["unitsInStockTextBox"].BackColor = Color.White;
    }
}

لاحظ أن لكل من هذه التخصيصات يجب توفير تعليمات برمجية لتعيين خصائص لكل من وجهي الشرط. و إذا لم تقم بتعيين شرط Else ، ستشاهد نتائج غير متوقعة في وقت التشغيل.

راجع أيضًا:

المهام

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

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

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

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

المرجع

DataRepeater

DrawItem

المبادئ

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