Freigeben über


ScrollableControl.AutoScroll Eigenschaft

Definition

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob der Container dem Benutzer ermöglicht, zu allen Steuerelementen zu scrollen, die außerhalb seiner sichtbaren Grenzen platziert sind.

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

truewenn der Container den automatischen Bildlauf ermöglicht; andernfalls . false Der Standardwert ist false.

Beispiele

Das folgende Codebeispiel zeigt, 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 ein Formular Panel hinzu.

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

  4. Verschieben Sie das Textfeld so, dass der rechte Teil über den rechten Rand des Panels hinausgeht.

    Es sollte nur eine Kontur des Teils des Textfelds angezeigt werden, der sich außerhalb der Grenzen des Panels befindet. Wenn das gesamte Textfeld sichtbar ist, befindet sich das Textfeld im Formular und nicht im Bereich.

  5. Fügen Sie dem Formular ein Formular 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 unter dem unteren Rand des Panels 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 AutoScroll Eigenschaft truefestgelegt wird, und bevor die AutoScrollMargin Eigenschaft festgelegt wird. Diese out-of-bounds-Prüfung ist nicht erforderlich. Wenn AutoScroll diese Einstellung truefestgelegt ist, werden keine Bildlaufleisten angezeigt, wenn sich das Textfeld vollständig im Bereich befindet. Außerdem können Sie die Seitenränder bei ihren Standardeinstellungen von 0,0 belassen.

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 ermöglicht, dass der Container eine virtuelle Größe aufweist, die größer als die 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 so, als ob AutoScroll es festgelegt falsewäre.

Es gibt derzeit eine Einschränkung in Windows Forms, die verhindert, dass alle Klassen ScrollableControl ordnungsgemäß funktionieren, wenn beide RightToLeft aktiviert sind und AutoScroll auf true". Nehmen wir beispielsweise an, dass Sie ein Steuerelement wie Panel - oder eine containerklasse, die von Panel Ihrem Formular abgeleitet ist (z FlowLayoutPanel . B. oder TableLayoutPanel) - platzieren. Wenn Sie für den Container true festlegenAutoScroll, dass die Anchor Eigenschaft auf ein oder mehrere Steuerelemente innerhalb des Containers Rightfestgelegt wird, wird keine Bildlaufleiste angezeigt. Die von ScrollableControl der Klasse abgeleitete Klasse fungiert so, als ob AutoScroll sie auf false. Derzeit besteht die einzige Problemumgehung darin, die ScrollableControl Innenseite zu ScrollableControlverschachteln. Wenn Sie z. B. in dieser Situation arbeiten müssenTableLayoutPanel, können Sie es innerhalb eines Panel Steuerelements platzieren und auf das PaneltrueSteuerelement festlegenAutoScroll.

Hinweis

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

Gilt für:

Weitere Informationen