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

Definizione

Ottiene o imposta un valore che indica se il contenitore consentirà all'utente di scorrere i controlli posizionati all'esterno dei limiti visibili.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

Valore della proprietà

true Se il contenitore consente lo scorrimento automatico; in caso contrario, false.true if the container enables auto-scrolling; otherwise, false. Il valore predefinito è false.The default value is false.

Esempi

Esempio di codice seguente mostra la modalità orizzontale e/o verticale scorrimento barre vengono fornite automaticamente in base alle necessità quando la AutoScroll è impostata su 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. Per eseguire l'esempio, seguire questa procedura:To run the example, follow these steps:

  1. Creare una nuova applicazione Windows Forms.Create a new Windows Forms application.

  2. Aggiungere un tipo Panel al form.Add a Panel to the form.

  3. Aggiungere un TextBox nel pannello e denominarlo text1.Add a TextBox to the panel and name it text1.

  4. Spostare la casella di testo in modo che la parte destra si estende oltre il bordo destro del pannello.Move the text box so that the right part extends beyond the right edge of the panel.

    Verrà visualizzata solo una struttura della parte della casella di testo che è esterno ai limiti del pannello.You should see only an outline of the part of the text box that is outside the bounds of the panel. Se la casella di testo intera è visibile, la casella di testo è sul form e non nel pannello.If the whole text box is visible, the text box is on the form and not in the panel.

  5. Aggiungere un tipo Button al form.Add a Button to the form.

  6. Aggiungere un gestore per il Click evento del pulsante.Add a handler for the Click event of the button.

  7. Aggiungere il seguente codice di esempio e chiamarlo da del pulsante Click gestore.Add the following example code and call it from the button's Click handler.

Quando si esegue l'esempio, è possibile visualizzare solo la parte della casella di testo che si trova all'interno dei limiti del pannello.When you run the example, you can only see the part of the text box that is inside the boundaries of the panel. Quando si fa clic sul pulsante, si verrà visualizzato un indicatore di avanzamento orizzontale che consentirà di visualizzare il resto della casella di testo.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.

Se si posiziona una parte della casella di testo sotto la parte inferiore del pannello, si verrà visualizzata una barra di scorrimento verticale quando si fa clic sul pulsante.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.

Il codice di esempio controlla se la casella di testo è esterno ai limiti del riquadro prima che imposta la AutoScroll proprietà true, e prima di impostare il AutoScrollMargin proprietà.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. Ciò non compresi nell'intervallo controllo non è obbligatorio.This out-of-bounds check is not required. Se AutoScroll è impostata su true, non verrà visualizzata alcuna barra di scorrimento quando la casella di testo è completamente all'interno del pannello.If AutoScroll is set to true, no scroll bars will appear when the text box is completely within the panel. Inoltre, è possibile lasciare i margini le impostazioni predefinite di 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

Commenti

Quando true, questa proprietà consente al contenitore di avere le dimensioni virtuali maggiore dei limiti visibili.When true, this property enables the container to have a virtual size that is larger than its visible boundaries.

Esiste attualmente una limitazione in Windows Form che impedisce il corretto funzionamento di tutte le classi derivate da ScrollableControl quando RightToLeft è abilitato e AutoScroll è impostato su Yes.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. Ad esempio, si supponga, ad esempio si inserisce un controllo Panel - o una classe contenitore derivata da Panel (ad esempio FlowLayoutPanel o TableLayoutPanel) - nel form.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. Se si imposta AutoScroll nel contenitore su Yes e si imposta la proprietà Anchor di uno o più controlli all'interno del contenitore su Right, non verrà visualizzata alcuna barra di scorrimento.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. La classe derivata da ScrollableControl agisce come se AutoScroll fosse impostato su No.The class derived from ScrollableControl acts as if AutoScroll were set to No.

Attualmente, l'unica soluzione alternativa consiste nell'annidare ScrollableControl in un altro ScrollableControl.Currently, the only workaround is to nest the ScrollableControl inside another ScrollableControl. Ad esempio, se è necessario TableLayoutPanel per lavorare in questa situazione, è possibile inserirlo all'interno di un controllo Panel e impostare AutoScroll in Panel su Yes.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.

Nota

AutoScroll gestisce automaticamente la visibilità delle barre di scorrimento.AutoScroll maintains the visibility of the scrollbars automatically. Pertanto, l'impostazione di HScroll o VScroll proprietà true non ha alcun effetto quando AutoScroll è abilitata.Therefore, setting the HScroll or VScroll property to true has no effect when AutoScroll is enabled.

Si applica a

Vedi anche