Gewusst wie: Ändern des Layouts eines DataRepeater-Steuerelements (Visual Studio)
Aktualisiert: Juli 2008
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.
Hinweis: |
---|
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
Wählen Sie im Windows Forms-Designer das DataRepeater-Steuerelement aus.
Hinweis: 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.
Legen Sie im Eigenschaftenfenster für die LayoutStyle-Eigenschaft Vertical oder Horizontal fest.
So ändern Sie zur Laufzeit das Layout
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; }
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)
Konzepte
Einführung in das DataRepeater-Steuerelement (Visual Studio)
Referenz
Änderungsverlauf
Date |
Versionsgeschichte |
Grund |
---|---|---|
Juli 2008 |
Zusätzliches Thema |
SP1-Featureänderung. |