ScrollableControl.AutoScroll Propriété

Définition

Obtient ou définit une valeur indiquant si le conteneur permet à l'utilisateur de faire défiler un contrôle placé 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 permet un 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 propriété a la AutoScrolltruevaleur . 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 afin que la partie droite s’étende 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 qui se trouve à l’intérieur des limites du panneau. Lorsque vous cliquez sur le bouton, vous voyez apparaître une barre de défilement horizontale qui vous permettra de voir le reste de la zone de texte.

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

L’exemple de code vérifie si la zone de texte se trouve en dehors des limites du panneau avant de définir la AutoScroll propriété sur trueet avant de définir la AutoScrollMargin propriété. Cette vérification hors limites n’est pas obligatoire. Si AutoScroll a la valeur true, aucune barre de défilement n’apparaît lorsque la zone de texte se trouve entièrement dans le panneau. En outre, vous pouvez laisser 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 , truecette propriété permet au conteneur d’avoir une taille virtuelle supérieure à ses limites visibles.

Notes

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 sur false.

Il existe actuellement une limitation dans les Windows Forms qui empêche toutes les classes dérivées de ScrollableControl de se comporter correctement quand la propriété RightToLeft est activée et que AutoScroll a la valeur true. Par exemple, supposons que vous placez un contrôle tel que Panel - ou une classe de conteneur dérivée de Panel (comme FlowLayoutPanel ou TableLayoutPanel) - sur votre formulaire. Si vous affectez la valeur true à la propriété AutoScroll sur le conteneur et que vous affectez ensuite la valeur Right à la propriété Anchor sur un ou plusieurs des contrôles à l'intérieur du conteneur, aucune barre de défilement n'est jamais affichée. La classe dérivée de ScrollableControl se comporte comme si AutoScroll avait la valeur false. Actuellement, la seule solution de contournement consiste à imbriquer le ScrollableControl à l'intérieur d'un autre ScrollableControl. Par exemple, si vous souhaitez que TableLayoutPanel fonctionne dans cette situation, vous pouvez le placer à l'intérieur d'un contrôle Panel et affecter la valeur true à la propriété AutoScroll sur le Panel.

Notes

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

S’applique à

Voir aussi