Comment : modifier la disposition d'un contrôle DataRepeater (Visual Studio)
Le contrôle DataRepeater peut être affiché selon une orientation verticale (défilement vertical des éléments) ou horizontale (défilement horizontal des éléments).Vous pouvez modifier l'orientation au moment du design ou de l'exécution en modifiant la propriété LayoutStyle.Si vous modifiez la propriété LayoutStyle au moment de l'exécution, peut-être souhaiterez-vous également redimensionner ItemTemplate et repositionner les contrôles enfants.
[!REMARQUE]
Si vous repositionnez des contrôles sur ItemTemplate au moment de l'exécution, vous devrez appeler les méthodes BeginResetItemTemplate et EndResetItemTemplate au début et à la fin du bloc de code chargé de repositionner les contrôles.
Pour modifier la disposition au moment du design
Dans le Concepteur Windows Forms, sélectionnez le contrôle DataRepeater.
[!REMARQUE]
Vous devez sélectionner la bordure externe du contrôle DataRepeater en cliquant dans la région inférieure du contrôle, et pas dans la région ItemTemplate supérieure.
Dans la fenêtre Propriétés, affectez à la propriété LayoutStyle soit Vertical, soit Horizontal.
Pour modifier la disposition au moment de l'exécution
Ajoutez le code suivant à un gestionnaire d'événements Click de bouton ou de menu :
' 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; }
Dans la plupart des cas, vous souhaiterez ajouter des lignes de code semblables à celles indiquées dans la section Exemple pour redimensionner ItemTemplate et réorganiser les contrôles en vue de les adapter à la nouvelle orientation.
Exemple
L'exemple suivant montre comment répondre à l'événement LayoutStyleChanged dans un gestionnaire d'événements.Cet exemple nécessite la présence d'un contrôle DataRepeater nommé DataRepeater1 sur le formulaire et que ses ItemTemplate contiennent deux contrôles TextBox nommés TextBox1 et 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();
}
Voir aussi
Tâches
Dépannage des problèmes liés au contrôle DataRepeater (Visual Studio)
Comment : modifier l'apparence d'un contrôle DataRepeater (Visual Studio)