Condividi tramite


Procedura: modificare il layout di un controllo DataRepeater (Visual Studio)

Il controllo DataRepeater può essere visualizzato con un orientamento verticale, in cui gli elementi scorrono verticalmente, o orizzontale, in cui gli elementi scorrono orizzontalmente.È possibile modificare l'orientamento in fase di progettazione o in fase di esecuzione, modificando la proprietà LayoutStyle.Se la proprietà LayoutStyle viene modificata in fase di esecuzione, ridimensionare ItemTemplate e riposizionare i controlli figlio.

[!NOTA]

Se i controlli vengono riposizionati su ItemTemplate in fase di esecuzione, chiamare i metodi BeginResetItemTemplate e EndResetItemTemplate all'inizio e alla fine del blocco di codice di riposizionamento dei controlli.

Per modificare il layout in fase di progettazione

  1. In Progettazione Windows Form selezionare il controllo DataRepeater.

    [!NOTA]

    Selezionare il bordo esterno del controllo DataRepeater facendo clic nell'area inferiore del controllo anziché nell'area ItemTemplate superiore.

  2. Nella finestra Proprietà, impostare la proprietà LayoutStyle su Vertical o Horizontal.

Per modificare il layout in fase di esecuzione

  1. Aggiungere al gestore eventi Click di un pulsante o menu il codice riportato di seguito:

    ' 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. Nella maggior parte dei casi, per ridimensionare ItemTemplate e adattare la disposizione dei controlli al nuovo orientamento è consigliabile aggiungere codice simile a quello riportato nella sezione Esempio.

Esempio

Nell'esempio riportato di seguito viene mostrato come rispondere all'evento LayoutStyleChanged in un gestore eventi.Per questo esempio è necessario disporre di un controllo DataRepeater denominato DataRepeater1 in un form e che il relativo oggetto ItemTemplate contenga due controlli TextBox denominati TextBox1 e 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();
}

Vedere anche

Attività

Risoluzione dei problemi relativi al controllo DataRepeater (Visual Studio)

Procedura: modificare l'aspetto di un controllo DataRepeater (Visual Studio)

Riferimenti

DataRepeater

LayoutStyle

BeginResetItemTemplate

EndResetItemTemplate

Concetti

Introduzione al controllo DataRepeater (Visual Studio)