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
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.
W oknie dialogowym właściwości ustaw LayoutStyle właściwości albo Vertical lub Horizontal.
Aby zmienić układ w czasie wykonywania
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; }
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)