Condividi tramite


ScrollableControl.AutoScroll Proprietà

Definizione

Ottiene o imposta un valore che indica se il contenitore consente all'utente di scorrere fino a qualsiasi controllo posizionato 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à

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

Esempio

Nell'esempio di codice seguente viene illustrato il modo in cui le barre di scorrimento orizzontali e/o verticali 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 Form.

  2. Aggiungere un oggetto Panel al modulo.

  3. Aggiungere un oggetto TextBox 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à visualizzato solo un contorno 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 oggetto Button al modulo.

  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 consentirà 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 verifica 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 si trova completamente all'interno del pannello. Inoltre, è possibile lasciare i margini alle 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.

Annotazioni

In Windows Form 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 a tutte le classi derivate di ScrollableControl agire correttamente quando entrambi RightToLeft sono abilitati ed AutoScroll è impostato su true. Si supponga, ad esempio, di inserire un controllo, Panel ad esempio , o una classe contenitore derivata da Panel (ad esempio FlowLayoutPanel o TableLayoutPanel) nel modulo. Se si imposta AutoScroll sul contenitore su true e quindi si imposta la Anchor proprietà su uno o più controlli all'interno del contenitore su Right, non viene mai visualizzata alcuna barra di scorrimento. La classe derivata da ScrollableControl agisce come se AutoScroll fosse impostata su false. Attualmente, l'unica soluzione alternativa consiste nell'annidare l'oggetto ScrollableControl all'interno di un altro ScrollableControloggetto . Ad esempio, se è necessario TableLayoutPanel lavorare in questa situazione, è possibile inserirlo all'interno di un Panel controllo e impostare AutoScroll su Panel su true.

Annotazioni

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