ScrollableControl.AutoScroll Proprietà

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

Nell'esempio di codice seguente viene illustrato come le barre di scorrimento orizzontale e/o verticale vengono fornite automaticamente AutoScroll in base alle esigenze truequando la proprietà è impostata su.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, attenersi alla procedura seguente: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 al pannello e text1denominarlo.Add a TextBox to the panel and name it text1.

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

    Verrà visualizzato solo un contorno della parte della casella di testo che si trova all'esterno dei 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 l'intera casella di testo è visibile, la casella di testo si trova sul form e non sul 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 l' Click evento del pulsante.Add a handler for the Click event of the button.

  7. Aggiungere il codice di esempio seguente e chiamarlo dal Click gestore del pulsante.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, viene visualizzata una barra di scorrimento orizzontale che consente 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, quando si fa clic sul pulsante viene visualizzata una barra di scorrimento verticale.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 si trova all'esterno dei limiti del pannello prima di impostare la AutoScroll proprietà su truee prima di impostare la 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. Questo controllo out-of-Bounds non è obbligatorio.This out-of-bounds check is not required. Se AutoScroll è impostato 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 con le impostazioni predefinite 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

Se true, questa proprietà consente al contenitore di avere una dimensione virtuale 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. Si immagini, ad esempio, di Panel inserire un controllo come o una classe contenitore derivata da Panel , ad FlowLayoutPanel esempio 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

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

Si applica a

Vedi anche