ScrollableControl.AutoScroll 속성

정의

컨테이너에서 사용자가 표시되는 컨테이너 경계 밖의 컨트롤까지 스크롤할 수 있는지 여부를 나타내는 값을 가져오거나 설정합니다.Gets or sets a value indicating whether the container enables the user to scroll to any controls placed outside of its visible boundaries.

public:
 virtual property bool AutoScroll { bool get(); void set(bool value); };
public virtual bool AutoScroll { get; set; }
member this.AutoScroll : bool with get, set
Public Overridable Property AutoScroll As Boolean

속성 값

컨테이너에서 자동 스크롤을 사용할 수 있으면 true이고, 그렇지 않으면 false입니다.true if the container enables auto-scrolling; otherwise, false. 기본값은 false입니다.The default value is false.

예제

다음 코드 예제에서는 어떻게 가로 및 세로 스크롤 막대는 경우 필요에 따라 자동으로 제공 됩니다는 AutoScroll 속성이 true합니다.The following code example shows how horizontal and/or vertical scroll bars are provided automatically as needed when the AutoScroll property is set to true. 예제를 실행 하려면 다음이 단계를 수행 합니다.To run the example, follow these steps:

  1. 새 Windows Forms 애플리케이션을 만듭니다.Create a new Windows Forms application.

  2. 폼에 Panel를 추가합니다.Add a Panel to the form.

  3. 추가 된 TextBox 패널에 이름을 text1입니다.Add a TextBox to the panel and name it text1.

  4. 오른쪽 패널의 오른쪽 가장자리를 넘어 확장 되도록 입력란을 이동 합니다.Move the text box so that the right part extends beyond the right edge of the panel.

    패널의 경계 외부에 있는 텍스트 상자의 파트의 윤곽만을 나타납니다.You should see only an outline of the part of the text box that is outside the bounds of the panel. 전체 텍스트 상자를 표시 하는 경우 패널 및 폼에 텍스트 상자가 표시 됩니다.If the whole text box is visible, the text box is on the form and not in the panel.

  5. 폼에 Button를 추가합니다.Add a Button to the form.

  6. 에 대 한 처리기를 추가 합니다 Click 단추의 이벤트입니다.Add a handler for the Click event of the button.

  7. 다음 예제 코드를 추가 하 고 단추의에서 호출할 Click 처리기입니다.Add the following example code and call it from the button's Click handler.

예제를 실행 하는 경우에 패널의 경계 내에 있는 텍스트 상자 부분을 볼 수 있습니다.When you run the example, you can only see the part of the text box that is inside the boundaries of the panel. 단추를 클릭 하면 입력란의 나머지 부분을 볼 수 있도록를 표시 하는 가로 스크롤 막대를 표시 됩니다.When you click the button, you will see a horizontal scroll bar appear that will enable you to see the rest of the text box.

패널의 맨 아래에 있는 텍스트 상자 부분을 배치 하는 경우 단추를 클릭할 때 세로 스크롤 막대가 나타납니다.If you position a part of the text box below the bottom of the panel, you will see a vertical scroll bar when you click the button.

예제 코드를 설정 하기 전에 패널의 범위를 벗어나는 입력란 인지 확인 합니다 AutoScroll 속성을 true를 설정 하기 전에 및의 AutoScrollMargin 속성.The example code checks to see whether the text box is outside the bounds of the panel before it sets the AutoScroll property to true, and before it sets the AutoScrollMargin property. 이 범위를 벗어나는 검사가 필요 하지 않습니다.This out-of-bounds check is not required. 하는 경우 AutoScroll 로 설정 된 true, 텍스트 상자를 패널 내에서 완전히 때 스크롤 막대가 없습니다 표시 됩니다.If AutoScroll is set to true, no scroll bars will appear when the text box is completely within the panel. 또한 기본 설정으로 0, 0의 여백을 둘 수 있습니다.Also, you can leave the margins at their default settings of 0,0.

void SetAutoScrollMargins()
{
   /* If the text box is outside the panel's bounds, 
          turn on auto-scrolling and set the margin. */
   if ( text1->Location.X > panel1->Location.X || text1->Location.Y > panel1->Location.Y )
   {
      panel1->AutoScroll = true;

      /* If the AutoScrollMargin is set to less 
                than (5,5), set it to 5,5. */
      if ( panel1->AutoScrollMargin.Width < 5 || panel1->AutoScrollMargin.Height < 5 )
      {
         panel1->SetAutoScrollMargin( 5, 5 );
      }
   }
}
private void SetAutoScrollMargins()
 {
    /* If the text box is outside the panel's bounds, 
       turn on auto-scrolling and set the margin. */  
    if (text1.Location.X > panel1.Location.X || 
       text1.Location.Y > panel1.Location.Y)
    {
       panel1.AutoScroll = true;
       /* If the AutoScrollMargin is set to less 
          than (5,5), set it to 5,5. */
       if( panel1.AutoScrollMargin.Width < 5 || 
          panel1.AutoScrollMargin.Height < 5)
       {
          panel1.SetAutoScrollMargin(5, 5);
       }
    }
 }
 
Private Sub SetAutoScrollMargins()
    ' If the text box is outside the panel's bounds,
    ' turn on auto-scrolling and set the margin. 
    If (text1.Location.X > panel1.Location.X) Or _
        (text1.Location.Y > panel1.Location.Y) Then
        panel1.AutoScroll = True
        ' If the AutoScrollMargin is set to less
        ' than (5,5), set it to 5,5. 
        If (panel1.AutoScrollMargin.Width < 5) Or _
            (panel1.AutoScrollMargin.Height < 5) Then
            
            panel1.SetAutoScrollMargin(5, 5)
        End If
    End If
End Sub

설명

true,이 속성을 사용 하면 컨테이너가 보이는 경계 보다 큰 가상 크기입니다.When true, this property enables the container to have a virtual size that is larger than its visible boundaries.

현재 Windows Forms에는 RightToLeft가 사용하도록 설정되고 AutoScrollYes로 설정된 경우 ScrollableControl에서 파생된 모든 클래스가 제대로 작동할 수 없게 하는 제한 사항이 있습니다.There is currently a limitation in Windows Forms that prevents all classes derived from ScrollableControl from acting properly when both RightToLeft is enabled and AutoScroll is set to Yes. 예를 들어, 또는 ( Panel 예: FlowLayoutPanel 또는 TableLayoutPanel)에서 Panel 파생 된 컨테이너 클래스와 같은 컨트롤을 폼에 추가 한다고 가정해 보겠습니다.For example, let's say that you place a control such as Panel - or a container class derived from Panel (such as FlowLayoutPanel or TableLayoutPanel) - on your form. 컨테이너의 AutoScrollYes로 설정한 다음 컨테이너 내부에 있는 하나 이상 컨트롤의 Anchor 속성을 Right로 설정하는 경우에는 스크롤 막대가 나타나지 않습니다.If you set AutoScroll on the container to Yes and then set the Anchor property on one or more of the controls inside of the container to Right, then no scrollbar ever appears. ScrollableControl에서 파생된 클래스는 AutoScrollNo로 설정된 것처럼 동작합니다.The class derived from ScrollableControl acts as if AutoScroll were set to No.

현재 유일한 해결 방법은 ScrollableControl을 다른 ScrollableControl 안에 중첩하는 것입니다.Currently, the only workaround is to nest the ScrollableControl inside another ScrollableControl. 예를 들어 이런 상황에서 TableLayoutPanel이 작동해야 하는 경우 Panel 컨트롤 내부에 배치하고 PanelAutoScrollYes로 설정할 수 있습니다.For instance, if you need TableLayoutPanel to work in this situation, you can place it inside of a Panel control and set AutoScroll on the Panel to Yes.

참고

AutoScroll 스크롤 막대의 표시 여부를 자동으로 유지 관리합니다.AutoScroll maintains the visibility of the scrollbars automatically. 따라서 설정 합니다 HScroll 또는 VScroll 속성을 true 가 없는 경우 적용 AutoScroll 사용 가능 합니다.Therefore, setting the HScroll or VScroll property to true has no effect when AutoScroll is enabled.

적용 대상

추가 정보