Freigeben über


ScrollableControl.AutoScroll Eigenschaft

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.

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

Boolean

true, wenn im Container ein automatischer Bildlauf möglich ist, andernfalls false. Der Standardwert ist false.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie horizontale und/oder vertikale Bildlaufleisten bei Festlegung trueder AutoScroll Eigenschaft automatisch bereitgestellt werden. Führen Sie zum Ausführen des Beispiels die folgenden Schritte aus:

  1. Erstellen Sie eine neue Windows Forms-Anwendung.

  2. Fügen Sie dem Formular eine Panel hinzu.

  3. Fügen Sie dem Bereich einen TextBox Namen hinzu, und nennen Sie ihn text1.

  4. Bewegen Sie das Textfeld so, dass sich der rechte Teil über den rechten Rand des Bereichs erstreckt.

    Sie sollten nur eine Gliederung des Teils des Textfelds sehen, das sich außerhalb der Grenzen des Bereichs befindet. Wenn das gesamte Textfeld sichtbar ist, befindet sich das Textfeld im Formular und nicht im Bereich.

  5. Fügen Sie dem Formular eine Button hinzu.

  6. Fügen Sie einen Handler für das Click Ereignis der Schaltfläche hinzu.

  7. Fügen Sie den folgenden Beispielcode hinzu, und rufen Sie ihn aus dem Handler der Schaltfläche Click auf.

Wenn Sie das Beispiel ausführen, können Sie nur den Teil des Textfelds sehen, der sich innerhalb der Grenzen des Panels befindet. Wenn Sie auf die Schaltfläche klicken, wird eine horizontale Bildlaufleiste angezeigt, mit der Sie den Rest des Textfelds sehen können.

Wenn Sie einen Teil des Textfelds unterhalb des unteren Bereichs positionieren, wird beim Klicken auf die Schaltfläche eine vertikale Bildlaufleiste angezeigt.

Der Beispielcode überprüft, ob sich das Textfeld außerhalb der Grenzen des Panels befindet, bevor die Eigenschaft truefestgelegt AutoScroll wird, und bevor die AutoScrollMargin Eigenschaft festgelegt wird. Diese gebundene Überprüfung ist nicht erforderlich. Wenn AutoScroll festgelegt trueist, werden keine Bildlaufleisten angezeigt, wenn sich das Textfeld vollständig innerhalb des Bereichs befindet. Außerdem können Sie die Ränder bei den Standardeinstellungen von 0,0 verlassen.

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 truediese Eigenschaft aktiviert, dass der Container über eine virtuelle Größe verfügt, die größer als seine sichtbaren Grenzen ist.

Hinweis

In Windows Forms, wenn ein untergeordnetes Steuerelement rechts oder unten verankert ist (Control enthält Right oder Bottom) verhält sich der Container wie AutoScroll festgelegt auf false.

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 true festgelegt ist. Angenommen, Sie platzieren ein Steuerelement wie Panel - oder eine Containerklasse, die von Panel (z FlowLayoutPanel . B. oder TableLayoutPanel) abgeleitet wurde - auf Ihrem Formular. Wenn Sie AutoScroll im Container auf true und dann die Anchor-Eigenschaft für mindestens ein Steuerelement im Container auf Right festlegen, wird grundsätzlich keine Schiebeleiste angezeigt. Die von ScrollableControl abgeleitete Klasse verhält sich so, als ob AutoScroll auf false festgelegt wäre. Die einzige Problemumgehung besteht derzeit darin, ScrollableControl in einem anderen ScrollableControl zu schachteln. 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 true festlegen.

Hinweis

AutoScroll behält die Sichtbarkeit der Bildlaufleisten automatisch bei. Daher hat das Festlegen der HScroll Eigenschaft VScroll true keine Auswirkung, wenn AutoScroll sie aktiviert ist.

Gilt für

Siehe auch