Compartilhar via


Como: Alterar o layout de um controle DataRepeater (Visual Studio)

The DataRepeater controle pode ser exibido em um vertical (itens de rolar vertical) ou o horizontal (itens de rolar horizontal) orientação. Você pode alterar a orientação em time de design ou em time de execução, alterando o LayoutStyle propriedade. Se você alterar o LayoutStyle propriedade em time de execução, você talvez também queira redimensionar o ItemTemplate e reposicionar controles filho.

Observação:

Se você reposicionar controles na ItemTemplate em time de execução, você precisará chamar o BeginResetItemTemplate e EndResetItemTemplate métodos no início e participante do bloco de código reposiciona os controles.

Para alterar o layout em time de design

  1. No Designer de Formulários do Windows, selecionar o DataRepeater controle.

    Observação:

    Você deve selecionar a borda externa das DataRepeater controlar, clicando na região de controle, não na parte superior inferior ItemTemplate região.

  2. Na janela Propriedades, conjunto o LayoutStyle propriedade para qualquer um Vertical ou Horizontal.

Para alterar o layout em time de execução

  1. Adicione o seguinte código para um botão ou menu Click manipulador de eventos:

    ' 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. Na maioria dos casos, você desejará adicionar código semelhante ao mostrado na seção exemplo para redimensionar o ItemTemplate e reorganizar os controles para se ajuste à nova orientação.

Exemplo

O exemplo a seguir mostra como responder à LayoutStyleChanged evento em um manipulador de eventos. Este exemplo requer que você tenha um DataRepeater controle de chamada DataRepeater1 em um formulário e que seu ItemTemplate conter dois TextBox controles denominados 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();
}

Consulte também

Tarefas

Solução de problemas do controle DataRepeater (Visual Studio)

Como: Alterar a aparência de um controle DataRepeater (Visual Studio)

Conceitos

Introdução ao controle DataRepeater (Visual Studio)

Referência

DataRepeater

LayoutStyle

BeginResetItemTemplate

EndResetItemTemplate

Date

History

Motivo

Julho de 2008

Tópico adicional.

Alteração de recurso do SP1.