Partager via


ScrollableControl.AutoScroll Propriété

Définition

Obtient ou définit une valeur indiquant si le conteneur permet à l’utilisateur de faire défiler vers tous les contrôles placés en dehors de ses limites visibles.

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

Valeur de propriété

true si le conteneur active le défilement automatique ; sinon, false. La valeur par défaut est false.

Exemples

L’exemple de code suivant montre comment les barres de défilement horizontales et/ou verticales sont fournies automatiquement si nécessaire lorsque la AutoScroll propriété est définie truesur . Pour exécuter l’exemple, procédez comme suit :

  1. Créez une nouvelle application Windows Forms.

  2. Ajoutez un Panel au formulaire.

  3. Ajoutez un TextBox au panneau et nommez-le text1.

  4. Déplacez la zone de texte de sorte que la partie droite s’étend au-delà du bord droit du panneau.

    Vous ne devez voir qu’un plan de la partie de la zone de texte qui se trouve en dehors des limites du panneau. Si la zone de texte entière est visible, la zone de texte se trouve sur le formulaire et non dans le panneau.

  5. Ajoutez un Button au formulaire.

  6. Ajoutez un gestionnaire pour l’événement Click du bouton.

  7. Ajoutez l’exemple de code suivant et appelez-le à partir du gestionnaire du Click bouton.

Lorsque vous exécutez l’exemple, vous ne pouvez voir que la partie de la zone de texte située à l’intérieur des limites du panneau. Lorsque vous cliquez sur le bouton, une barre de défilement horizontale s’affiche et vous permet de voir le reste de la zone de texte.

Si vous positionnez une partie de la zone de texte sous le bas du panneau, vous verrez une barre de défilement verticale lorsque vous cliquez sur le bouton.

L’exemple de code vérifie si la zone de texte est en dehors des limites du panneau avant de définir la AutoScroll propriété trueet avant de définir la AutoScrollMargin propriété. Cette vérification hors limites n’est pas nécessaire. Si AutoScroll elle est définie truesur , aucune barre de défilement n’apparaît lorsque la zone de texte se trouve complètement dans le panneau. En outre, vous pouvez conserver les marges à leurs paramètres par défaut de 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

Remarques

Quand true, cette propriété permet au conteneur d’avoir une taille virtuelle supérieure à ses limites visibles.

Note

Dans Windows Forms lorsqu’un contrôle enfant est ancré à droite ou en bas (Control contient Right ou Bottom) le conteneur se comporte comme s’il AutoScroll était défini falsesur .

Il existe actuellement une limitation dans Windows Forms qui empêche toutes les classes dérivées d’agir ScrollableControl correctement lorsque les deux RightToLeft sont activées et AutoScroll définies sur true. Par exemple, supposons que vous placez un contrôle tel qu’une Panel classe de conteneur dérivée Panel (par exemple FlowLayoutPanel ou TableLayoutPanel) sur votre formulaire. Si vous définissez AutoScroll sur le conteneur true et définissez la Anchor propriété sur un ou plusieurs contrôles à l’intérieur du conteneur Right, aucune barre de défilement n’apparaît. La classe dérivée d’actions ScrollableControl comme si AutoScroll elle était définie sur false. Actuellement, la seule solution de contournement consiste à imbriquer l’intérieur d’un ScrollableControl autre ScrollableControl. Par exemple, si vous avez besoin TableLayoutPanel de travailler dans cette situation, vous pouvez le placer à l’intérieur d’un Panel contrôle et défini AutoScroll sur la valeur Paneltrue.

Note

AutoScroll maintient automatiquement la visibilité des barres de défilement. Par conséquent, la définition de la ou VScroll de la HScroll propriété true n’a aucun effet lorsqu’elle AutoScroll est activée.

S’applique à

Voir aussi