Comment : modifier la disposition d'un contrôle DataRepeater (Visual Studio)

Mise à jour : Juillet 2008

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

  1. 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.

  2. 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

  1. 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;
    }            
    
  2. 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 suppose qu'il existe un contrôle DataRepeater nommé DataRepeater1 sur un 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)

Concepts

Introduction au contrôle DataRepeater (Visual Studio)

Référence

DataRepeater

LayoutStyle

BeginResetItemTemplate

EndResetItemTemplate

Historique des modifications

Date

Historique

Raison

Juillet 2008

Rubrique ajoutée.

Modifications de fonctionnalités dans le SP1.