Condividi tramite


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

Aggiornamento: Luglio 2008

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)

Concetti

Introduzione al controllo DataRepeater (Visual Studio)

Riferimenti

DataRepeater

LayoutStyle

BeginResetItemTemplate

EndResetItemTemplate

Cronologia delle modifiche

Data

Cronologia

Motivo

Luglio 2008

Aggiunto argomento.

Modifica di funzionalità in SP1.