Porady: zmienianie układu formantu DataRepeater (Visual Studio)

DataRepeater Kontroli mogą być wyświetlane w pionowej (pozycje przewijania w pionie) lub poziomej (pozycje przewijania w poziomie) orientację.Można zmienić orientację w czasie projektowania lub w czasie wykonywania, zmieniając LayoutStyle właściwości.Jeśli zmienisz LayoutStyle właściwości w czasie wykonywania, może również chcesz zmienić rozmiar ItemTemplate i położenie formantów podrzędnych.

[!UWAGA]

Jeśli położenie formantów na ItemTemplate w czasie wykonywania, należy wywołać BeginResetItemTemplate i EndResetItemTemplate metody na początku i końcu bloku kodu, że zmiana kontroli.

Aby zmienić układ w czasie projektowania

  1. W projektancie Windows Forms, zaznacz DataRepeater kontroli.

    [!UWAGA]

    Musisz wybrać zewnętrzną krawędzią DataRepeater kontroli przez kliknięcie w niższym obszarze kontroli, a nie w prawym górnym ItemTemplate regionu.

  2. W oknie dialogowym właściwości ustaw LayoutStyle właściwości albo Vertical lub Horizontal.

Aby zmienić układ w czasie wykonywania

  1. Dodaj następujący kod do przycisku lub menu Click programu obsługi zdarzeń:

    ' 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. W większości przypadków można dodać kod podobny do pokazanego w sekcji przykład, aby zmienić rozmiar ItemTemplate i ponownie rozmieścić formanty w celu dopasowania do nowej orientacji.

Przykład

Poniższy przykład ilustruje sposób reagować na LayoutStyleChanged zdarzenia w obsłudze zdarzeń.W tym przykładzie wymaga, która ma DataRepeater formant o nazwie DataRepeater1 w formie i że jego ItemTemplate zawiera dwa TextBox kontrolki o nazwie TextBox1 i 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();
}

Zobacz też

Zadania

Rozwiązywanie problemów z formantem DataRepeater (Visual Studio)

Porady: zmienianie wyglądu formantu DataRepeater (Visual Studio)

Informacje

DataRepeater

LayoutStyle

BeginResetItemTemplate

EndResetItemTemplate

Koncepcje

Wprowadzenie do formantu DataRepeater (Visual Studio)