Sdílet prostřednictvím


Postupy: Jak změnit rozložení ovládacího prvku DataRepeater (Visual Studio)

Ovládací prvek DataRepeater lze zobrazit ve svislé (posunutí položky svisle) nebo vodorovné (posunutí ve vodorovném směru) orientaci. Můžete změnit orientaci v době návrhu nebo za běhu změnou vlastnosti LayoutStyle. Pokud změníte vlastnost LayoutStyle za běhu, můžete také změnit velikost ItemTemplate a umístění podřízených ovládací prvků.

Poznámka

Je-li změněno umístění ovládacích prvků na ItemTemplate v době běhu, je nutné zavolat metody BeginResetItemTemplate a EndResetItemTemplate na začátku a na konci bloku kódu, který přemisťoval ovládací prvky.

Chcete-li změnit rozložení v době návrhu

  1. V Návrháři formulářů vyberte ovládací prvek DataRepeater.

    Poznámka

    Musíte označit vnější okraj ovládacího prvku DataRepeater kliknutím do dolní oblasti ovládacího prvku, ne v horní oblasti ItemTemplate.

  2. V okně Vlastností nastavte vlastnost LayoutStyle ovládacího prvku Vertical na Horizontal.

Chcete-li změnit rozložení v době běhu

  1. Přidejte následující kód k obslužné rutině tlačítka či nabídky Click:

    ' Switch the orientation.
    If DataRepeater1.LayoutStyle =
     PowerPacks.DataRepeaterLayoutStyles.Vertical Then
        DataRepeater1.LayoutStyle =
         PowerPacks.DataRepeaterLayoutStyles.Horizontal
    Else
        DataRepeater1.LayoutStyle =
         PowerPacks.DataRepeaterLayoutStyles.Vertical
    End If
    
    // Switch the orientation.
    if (dataRepeater1.LayoutStyle == DataRepeaterLayoutStyles.Vertical)
    {
        dataRepeater1.LayoutStyle = DataRepeaterLayoutStyles.Horizontal;
    }
    else
    {
        dataRepeater1.LayoutStyle = DataRepeaterLayoutStyles.Vertical;
    }            
    
  2. Ve většině případů budete chtít přidat kód podobný uvedenému kódu v oddílu příklad, k změně velikost ItemTemplate a změně uspořádání ovládacích prvků k přizpůsobení nové orientaci.

Příklad

Následující příklad ukazuje, jak reagovat na událost LayoutStyleChanged v obslužné rutině události. Tento příklad vyžaduje, aby byl k dispozici ovládací prvek DataRepeater s názvem DataRepeater1 na formuláři a že jeho ItemTemplate obsahuje dva ovládací prvky TextBox nazvané TextBox1 a TextBox2.

Private Sub DataRepeater1_LayoutStyleChanged(ByVal sender As Object,
 ByVal e As System.EventArgs) Handles DataRepeater1.LayoutStyleChanged
    ' Call a method to re-initialize the template.
    DataRepeater1.BeginResetItemTemplate()
    If DataRepeater1.LayoutStyle =
     PowerPacks.DataRepeaterLayoutStyles.Vertical Then
        ' Change the height of the template and rearrange the controls.
        DataRepeater1.ItemTemplate.Height = 150
        DataRepeater1.ItemTemplate.Controls(TextBox1.Name).Location =
         New Point(20, 40)
        DataRepeater1.ItemTemplate.Controls(TextBox2.Name).Location =
         New Point(150, 40)
    Else
        ' Change the width of the template and rearrange the controls.
        DataRepeater1.ItemTemplate.Width = 150
        DataRepeater1.ItemTemplate.Controls(TextBox1.Name).Location =
         New Point(40, 20)
        DataRepeater1.ItemTemplate.Controls(TextBox2.Name).Location =
         New Point(40, 150)
    End If
    ' Apply the changes to the template.
    DataRepeater1.EndResetItemTemplate()
End Sub
private void dataRepeater1_LayoutStyleChanged_1(object sender, EventArgs e)
{
    // Call a method to re-initialize the template.
    dataRepeater1.BeginResetItemTemplate();
    if (dataRepeater1.LayoutStyle == DataRepeaterLayoutStyles.Vertical)
    // Change the height of the template and rearrange the controls.
    {
        dataRepeater1.ItemTemplate.Height = 150;
        dataRepeater1.ItemTemplate.Controls["TextBox1"].Location = new Point(20, 40);
        dataRepeater1.ItemTemplate.Controls["TextBox2"].Location = new Point(150, 40);
    }
    else
    {
        // Change the width of the template and rearrange the controls.
        dataRepeater1.ItemTemplate.Width = 150;
        dataRepeater1.ItemTemplate.Controls["TextBox1"].Location = new Point(40, 20);
        dataRepeater1.ItemTemplate.Controls["TextBox2"].Location = new Point(40, 150);
    }
    // Apply the changes to the template.
    dataRepeater1.EndResetItemTemplate();
}

Viz také

Úkoly

Řešení problému s ovládacím prvkem DataRepeater (Visual Studio)

Postupy: Jak změnit vzhled ovládacího prvku DataRepeater (Visual Studio)

Odkaz

DataRepeater

LayoutStyle

BeginResetItemTemplate

EndResetItemTemplate

Koncepty

Úvod k ovládacímu prvku DataRepeater (Visual Studio)