Поделиться через


Практическое руководство. Изменение структуры элемента управления DataRepeater (Visual Studio)

Обновлен: Июль 2008

Элемент управления DataRepeater можно отобразить либо вертикально (элементы прокручиваются вертикально), либо горизонтально (элементы прокручиваются горизонтально). Можно изменить ориентацию на этапе разработки или во время выполнения, изменив свойство LayoutStyle. Если свойство LayoutStyle изменяется во время выполнения, можно также изменить размеры ItemTemplate и расположение дочерних элементов управления.

Cc488199.alert_note(ru-ru,VS.90).gifПримечание.

При перемещении элементов управления на ItemTemplate во время выполнения, потребуется вызвать методы BeginResetItemTemplate и EndResetItemTemplate в начале и в конце блока кода, отвечающего за перемещение элементов управления.

Чтобы изменить макет во время выполнения

  1. В конструкторе Windows Forms выберите элемент управления DataRepeater.

    Cc488199.alert_note(ru-ru,VS.90).gifПримечание.

    Необходимо выделить внешнюю границу элемента управления DataRepeater, нажав на нижнюю область этого элемента управления, а не на верхнюю область ItemTemplate.

  2. В окне "Свойства" присвойте свойству LayoutStyle значение либо Vertical, либо Horizontal.

Чтобы изменить структуру во время выполнения

  1. Добавьте следующий код в обработчик событий кнопки Click:

    ' 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. В большинстве случаев, нужно будет добавить код, похожий на тот, который приведен в подразделе "Пример" для уменьшения размеров ItemTemplate и переупорядочения управляющих элементов для соответствия новой ориентации.

Пример

В следующем примере показан ответ на событие LayoutStyleChanged в обработчике событий. Для этого примера необходим элемент управления DataRepeater с именем DataRepeater1, который находится в форме, и ItemTemplate содержит два элемента управления TextBox с именами TextBox1 и 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();
}

См. также

Задачи

Устранение неполадок при использовании элемента управления DataRepeater (Visual Studio)

Практическое руководство. Изменение внешнего вида элемента управления DataRepeater (Visual Studio)

Основные понятия

Общие сведения об элементе управления DataRepeater (Visual Studio)

Ссылки

DataRepeater

LayoutStyle

BeginResetItemTemplate

EndResetItemTemplate

Журнал изменений

Дата

Журнал изменений

Причина

Июль 2008

Добавлен раздел.

Изменение функции SP1.