ScrollableControl.AutoScroll ScrollableControl.AutoScroll ScrollableControl.AutoScroll ScrollableControl.AutoScroll Property

定義

コンテナーで、表示されている境界の外にあるコントロールにユーザーがスクロールできるかどうかを示す値を取得または設定します。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。それ以外の場合は falsetrue 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 フォーム アプリケーションを作成します。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. AutoScrolltrue設定されている場合、テキストボックスがパネル内に完全に表示されていても、スクロールバーは表示されません。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 フォームには現在制限があり、両方の 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 、またはからPanel派生したコンテナークラス ( FlowLayoutPanelTableLayoutPanelなど) をフォームに配置したとします。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 に設定し、コンテナー内の 1 つ以上のコントロールの 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 コントロールの内側に配置して、Panel 上の AutoScrollYes に設定します。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.

適用対象

こちらもご覧ください