방법: DataRepeater 컨트롤의 레이아웃 변경(Visual Studio)

업데이트: 2008년 7월

DataRepeater 컨트롤은 세로 방향(항목을 세로로 스크롤) 또는 가로 방향(항목을 가로로 스크롤)으로 표시할 수 있습니다. LayoutStyle 속성을 변경하여 디자인 타임 또는 런타임에 방향을 변경할 수 있습니다. 런타임에 LayoutStyle 속성을 변경하는 경우 ItemTemplate의 크기를 조정하고 자식 컨트롤의 위치를 변경하려고 할 수도 있습니다.

참고:

런타임에 ItemTemplate에서 컨트롤의 위치를 변경하는 경우 컨트롤의 위치를 변경하는 코드 블록의 시작 및 끝에서 BeginResetItemTemplateEndResetItemTemplate 메서드를 호출할 필요가 있습니다.

디자인 타임에 레이아웃을 변경하려면

  1. Windows Forms 디자이너에서 DataRepeater 컨트롤을 선택합니다.

    참고:

    컨트롤의 위쪽 ItemTemplate 영역이 아닌 아래쪽 영역을 클릭하여 DataRepeater 컨트롤의 바깥쪽 테두리를 선택해야 합니다.

  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 이벤트에 응답하는 방법을 보여 줍니다. 이 예제를 실행하려면 폼에 DataRepeater1이라는 DataRepeater 컨트롤이 있고 해당 ItemTemplate에 TextBox1 및 TextBox2라는 두 개의 TextBox 컨트롤이 있어야 합니다.

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년 7월

추가된 항목입니다.

SP1 기능 변경