ScrollableControl.AutoScroll Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:
Creare una nuova applicazione Windows Form.
Aggiungere un oggetto Panel al modulo.
Aggiungere un oggetto TextBox al pannello e denominarlo
text1.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.
Aggiungere un oggetto Button al modulo.
Aggiungere un gestore per l'evento
Clickdel pulsante.Aggiungere il codice di esempio seguente e chiamarlo dal gestore del
Clickpulsante.
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.