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

Definition

Ruft einen Wert ab, der angibt, ob im Container ein Bildlauf zu allen Steuerelementen möglich ist, die sich außerhalb des sichtbaren Bereichs des Containers befinden, oder legt diesen Wert fest.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

Eigenschaftswert

true, wenn im Container ein automatischer Bildlauf möglich ist, andernfalls false.true if the container enables auto-scrolling; otherwise, false. Der Standardwert ist falsesein.The default value is false.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie horizontale und/oder vertikale Bild Lauf leisten automatisch nach Bedarf bereit AutoScroll gestellt werden, wenn truedie-Eigenschaft auf festgelegt ist.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. Um das Beispiel auszuführen, führen Sie die folgenden Schritte aus:To run the example, follow these steps:

  1. Erstellen Sie eine neue Windows Forms-Anwendung.Create a new Windows Forms application.

  2. Fügen Sie dem Formular eine Panel hinzu.Add a Panel to the form.

  3. Fügen Sie TextBox dem Bereich ein hinzu, und text1benennen Sie ihn.Add a TextBox to the panel and name it text1.

  4. Verschieben Sie das Textfeld so, dass sich der Rechte Teil über den rechten Rand des Bereichs erstreckt.Move the text box so that the right part extends beyond the right edge of the panel.

    Es sollte nur ein Umriss des Teils des Textfelds angezeigt werden, der sich außerhalb der Begrenzungen des Bereichs befindet.You should see only an outline of the part of the text box that is outside the bounds of the panel. Wenn das gesamte Textfeld sichtbar ist, befindet sich das Textfeld im Formular und nicht im Bereich.If the whole text box is visible, the text box is on the form and not in the panel.

  5. Fügen Sie dem Formular eine Button hinzu.Add a Button to the form.

  6. Fügen Sie einen Handler für Click das-Ereignis der Schaltfläche hinzu.Add a handler for the Click event of the button.

  7. Fügen Sie den folgenden Beispielcode hinzu, und nennen Sie ihn Click über den Handler der Schaltfläche.Add the following example code and call it from the button's Click handler.

Wenn Sie das Beispiel ausführen, können Sie nur den Teil des Textfelds sehen, der sich innerhalb der Grenzen des Bereichs befindet.When you run the example, you can only see the part of the text box that is inside the boundaries of the panel. Wenn Sie auf die Schaltfläche klicken, wird eine horizontale Schiebe Leiste angezeigt, mit der Sie den Rest des Textfelds anzeigen können.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.

Wenn Sie einen Teil des Textfelds unterhalb des unteren Bereichs des Panels positionieren, wird eine vertikale Schiebe Leiste angezeigt, wenn Sie auf die Schaltfläche klicken.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.

Im Beispielcode wird überprüft, ob das Textfeld außerhalb der Begrenzungen des Bereichs liegt, bevor die AutoScroll -Eigenschaft auf truefestgelegt wird, und bevor die AutoScrollMargin -Eigenschaft festgelegt wird.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. Diese Überprüfung ist nicht erforderlich.This out-of-bounds check is not required. Wenn AutoScroll auftruefestgelegt ist, werden keine Scrollleisten angezeigt, wenn sich das Textfeld vollständig innerhalb des Bereichs befindet.If AutoScroll is set to true, no scroll bars will appear when the text box is completely within the panel. Außerdem können Sie die Ränder der Standardeinstellungen 0, 0 (null) überlassen.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

Hinweise

Wenn true, ermöglicht diese Eigenschaft dem Container eine virtuelle Größe, die größer ist als die sichtbaren Grenzen.When true, this property enables the container to have a virtual size that is larger than its visible boundaries.

In Windows Forms besteht derzeit eine Einschränkung, die die ordnungsgemäße Funktion aller von ScrollableControl abgeleiteten Klassen verhindert, wenn sowohl RightToLeft aktiviert als auch AutoScroll auf Yes festgelegt ist.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. Nehmen wir beispielsweise an, dass Sie ein Steuerelement wie z Panel . b. oder eine von Panel abgeleitete Container Klasse FlowLayoutPanel ( TableLayoutPanelz. b. oder) in Ihrem Formular platzieren.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. Wenn Sie AutoScroll im Container auf Yes und dann die Anchor-Eigenschaft für mindestens ein Steuerelement im Container auf Right festlegen, wird grundsätzlich keine Schiebeleiste angezeigt.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. Die von ScrollableControl abgeleitete Klasse verhält sich so, als ob AutoScroll auf No festgelegt wäre.The class derived from ScrollableControl acts as if AutoScroll were set to No.

Die einzige Problemumgehung besteht derzeit darin, ScrollableControl in einem anderen ScrollableControl zu schachteln.Currently, the only workaround is to nest the ScrollableControl inside another ScrollableControl. Wenn Sie beispielsweise in dieser Situation die Funktion von TableLayoutPanel benötigen, können Sie es in einem Panel-Steuerelement platzieren und AutoScroll in Panel auf Yes festlegen.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.

Hinweis

AutoScrollverwaltet die Sichtbarkeit der Scrollleisten automatisch.AutoScroll maintains the visibility of the scrollbars automatically. Daher hat das Festlegen HScroll der VScroll -Eigenschaft true oder der-Eigenschaft AutoScroll auf keine Auswirkung, wenn aktiviert ist.Therefore, setting the HScroll or VScroll property to true has no effect when AutoScroll is enabled.

Gilt für:

Siehe auch