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.

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à

Boolean

true se il contenitore consente lo scorrimento automatico; in caso contrario, false. Il valore predefinito è false.

Esempio

Nell'esempio di codice seguente viene illustrato come le barre di scorrimento orizzontale e/o verticale vengono fornite automaticamente in base alle esigenze quando la AutoScroll proprietà è impostata su true. Per eseguire l'esempio, seguire questa procedura:

  1. Creare una nuova applicazione Windows Forms.

  2. Aggiungere un tipo Panel al form.

  3. Aggiungere un TextBox oggetto al pannello e denominarlo text1.

  4. Spostare la casella di testo in modo che la parte destra si estenda oltre il bordo destro del pannello.

    Verrà visualizzata solo una struttura della parte della casella di testo esterna ai limiti del pannello. Se l'intera casella di testo è visibile, la casella di testo si trova nel modulo e non nel pannello.

  5. Aggiungere un tipo Button al form.

  6. Aggiungere un gestore per l'evento Click del pulsante.

  7. Aggiungere il codice di esempio seguente e chiamarlo dal gestore del Click pulsante.

Quando si esegue l'esempio, è possibile visualizzare solo la parte della casella di testo che si trova all'interno dei limiti del pannello. Quando si fa clic sul pulsante, viene visualizzata una barra di scorrimento orizzontale che consente di visualizzare il resto della casella di testo.

Se si posiziona una parte della casella di testo sotto la parte inferiore del pannello, quando si fa clic sul pulsante verrà visualizzata una barra di scorrimento verticale.

Il codice di esempio controlla se la casella di testo non rientra nei limiti del pannello prima di impostare la AutoScroll proprietà su truee prima di impostare la AutoScrollMargin proprietà . Questo controllo out-of-bounds non è obbligatorio. Se AutoScroll è impostato su true, non verrà visualizzata alcuna barra di scorrimento quando la casella di testo è completamente all'interno del pannello. Inoltre, è possibile lasciare i margini nelle impostazioni predefinite di 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 una dimensione virtuale maggiore dei limiti visibili.

Nota

In Windows Forms quando un controllo figlio è ancorato a destra o in basso (Control contiene Right o Bottom) il contenitore si comporta come se AutoScroll fosse impostato su false.

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 true. Si supponga, ad esempio, di posizionare un controllo, Panel ad esempio , o una classe contenitore derivata da Panel (ad esempio FlowLayoutPanel o TableLayoutPanel) nel modulo. Se si imposta AutoScroll nel contenitore su true e si imposta la proprietà Anchor di uno o più controlli all'interno del contenitore su Right, non verrà visualizzata alcuna barra di scorrimento. La classe derivata da ScrollableControl agisce come se AutoScroll fosse impostato su false. Attualmente, l'unica soluzione alternativa consiste nell'annidare ScrollableControl in un altro 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 true.

Nota

AutoScroll mantiene automaticamente la visibilità delle barre di scorrimento. Pertanto, l'impostazione della HScroll proprietà o VScroll su true non ha alcun effetto quando AutoScroll è abilitata.

Si applica a

Vedi anche