ScrollableControl.AutoScroll ScrollableControl.AutoScroll ScrollableControl.AutoScroll ScrollableControl.AutoScroll Property

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.Gets or sets a value indicating whether the container enables the user to scroll to any controls placed outside of its visible boundaries.

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.true if the container enables auto-scrolling; otherwise, false. La valeur par défaut est false.The default value is false.

Exemples

L’exemple de code suivant montre comment les barres de défilement horizontales et/ou verticales sont fournies AutoScroll automatiquement si nécessaire lorsque truela propriété a la valeur.The following code example shows how horizontal and/or vertical scroll bars are provided automatically as needed when the AutoScroll property is set to true. Pour exécuter l’exemple, procédez comme suit :To run the example, follow these steps:

  1. Créez une application Windows Forms.Create a new Windows Forms application.

  2. Ajoutez un Panel au formulaire.Add a Panel to the form.

  3. Ajoutez un TextBox au panneau et nommez- text1le.Add a TextBox to the panel and name it text1.

  4. Déplacez la zone de texte pour que la partie droite s’étende au-delà du bord droit du panneau.Move the text box so that the right part extends beyond the right edge of the panel.

    Vous ne devriez voir qu’un contour de la partie de la zone de texte située en dehors des limites du panneau.You should see only an outline of the part of the text box that is outside the bounds of the panel. Si la totalité de la zone de texte est visible, la zone de texte se trouve sur le formulaire et non pas dans le panneau.If the whole text box is visible, the text box is on the form and not in the panel.

  5. Ajoutez un Button au formulaire.Add a Button to the form.

  6. Ajoutez un gestionnaire pour l' Click événement du bouton.Add a handler for the Click event of the button.

  7. Ajoutez l’exemple de code suivant et appelez-le à partir Click du gestionnaire du bouton.Add the following example code and call it from the button's Click handler.

Lorsque vous exécutez l’exemple, vous pouvez uniquement voir la partie de la zone de texte qui se trouve à l’intérieur des limites du panneau.When you run the example, you can only see the part of the text box that is inside the boundaries of the panel. Lorsque vous cliquez sur le bouton, une barre de défilement horizontale s’affiche pour vous permettre de voir le reste de la zone de texte.When you click the button, you will see a horizontal scroll bar appear that will enable you to see the rest of the text box.

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.If you position a part of the text box below the bottom of the panel, you will see a vertical scroll bar when you click the button.

L’exemple de code vérifie si la zone de texte se trouve en dehors des limites du panneau avant de définir AutoScroll la propriété sur true, et avant de définir la AutoScrollMargin propriété.The example code checks to see whether the text box is outside the bounds of the panel before it sets the AutoScroll property to true, and before it sets the AutoScrollMargin property. Ce contrôle hors limites n’est pas requis.This out-of-bounds check is not required. Si AutoScroll a la truevaleur, aucune barre de défilement ne s’affiche lorsque la zone de texte est complètement dans le panneau.If AutoScroll is set to true, no scroll bars will appear when the text box is completely within the panel. En outre, vous pouvez conserver les valeurs par défaut des marges 0, 0.Also, you can leave the margins at their default settings of 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

Lorsque truela valeur est, cette propriété permet au conteneur d’avoir une taille virtuelle supérieure à ses limites visibles.When true, this property enables the container to have a virtual size that is larger than its visible boundaries.

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 Yes.There is currently a limitation in Windows Forms that prevents all classes derived from ScrollableControl from acting properly when both RightToLeft is enabled and AutoScroll is set to Yes. Par exemple, supposons que vous Panel Placez un contrôle tel que-ou une classe de conteneur dérivée de Panel (telle FlowLayoutPanel que TableLayoutPanelou) sur votre formulaire.For example, let's say that you place a control such as Panel - or a container class derived from Panel (such as FlowLayoutPanel or TableLayoutPanel) - on your form. Si vous affectez la valeur Yes à 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.If you set AutoScroll on the container to Yes and then set the Anchor property on one or more of the controls inside of the container to Right, then no scrollbar ever appears. La classe dérivée de ScrollableControl se comporte comme si AutoScroll avait la valeur No.The class derived from ScrollableControl acts as if AutoScroll were set to No.

Actuellement, la seule solution de contournement consiste à imbriquer le ScrollableControl à l'intérieur d'un autre ScrollableControl.Currently, the only workaround is to nest the ScrollableControl inside another 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 Yes à la propriété AutoScroll sur le Panel.For instance, if you need TableLayoutPanel to work in this situation, you can place it inside of a Panel control and set AutoScroll on the Panel to Yes.

Notes

AutoScrollmaintient automatiquement la visibilité des barres de défilement.AutoScroll maintains the visibility of the scrollbars automatically. Par conséquent, l' HScroll affectation VScroll de la true valeur à la propriété AutoScroll ou n’a aucun effet lorsque est activé.Therefore, setting the HScroll or VScroll property to true has no effect when AutoScroll is enabled.

S’applique à

Voir aussi