Gewusst wie: Ändern des Layouts eines DataRepeater-Steuerelements (Visual Studio)

Das DataRepeater-Steuerelement kann sowohl vertikal (vertikaler Bildlauf der Elemente) als auch horizontal (horizontaler Bildlauf der Elemente) ausgerichtet werden. Die Ausrichtung kann zur Entwurfszeit oder Laufzeit geändert werden, indem Sie die LayoutStyle-Eigenschaft bearbeiten. Wenn Sie die LayoutStyle-Eigenschaft zur Laufzeit ändern, sollten Sie ggf. die Größe von ItemTemplate anpassen und die untergeordneten Steuerelemente neu positionieren.

Tipp

Beim Neupositionieren der Steuerelemente von ItemTemplate zur Laufzeit müssen Sie die Methoden BeginResetItemTemplate und EndResetItemTemplate am Anfang und Ende des Codeblocks aufrufen, durch den die Steuerelemente neu positioniert werden.

So ändern Sie zur Entwurfszeit das Layout

  1. Wählen Sie im Windows Forms-Designer das DataRepeater-Steuerelement aus.

    Tipp

    Markieren Sie die Außenkante des DataRepeater-Steuerelements, indem Sie auf den unteren Bereich des Steuerelements klicken. Klicken Sie nicht auf den oberen ItemTemplate-Bereich.

  2. Legen Sie im Eigenschaftenfenster für die LayoutStyle-Eigenschaft Vertical oder Horizontal fest.

So ändern Sie zur Laufzeit das Layout

  1. Fügen Sie dem Click-Ereignishandler einer Schaltfläche oder eines Menüs folgenden Code hinzu:

    ' 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. In den meisten Fällen fügen Sie ähnlichen Code wie im Beispielsabschnitt hinzu, um die Größe von ItemTemplate zu ändern und die Steuerelemente entsprechend der neuen Ausrichtung anzuordnen.

Beispiel

Im folgenden Beispiel wird die Reaktion auf das LayoutStyleChanged-Ereignis in einem Ereignishandler veranschaulicht. Für dieses Beispiel ist ein DataRepeater-Steuerelement mit dem Namen DataRepeater1 in einem Formular erforderlich, dessen ItemTemplate zwei TextBox-Steuerelemente mit den Namen TextBox1 und TextBox2 enthält.

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();
}

Siehe auch

Aufgaben

Problembehandlung beim DataRepeater-Steuerelement (Visual Studio)

Gewusst wie: Ändern der Darstellung eines DataRepeater-Steuerelements (Visual Studio)

Referenz

DataRepeater

LayoutStyle

BeginResetItemTemplate

EndResetItemTemplate

Konzepte

Einführung in das DataRepeater-Steuerelement (Visual Studio)