Share via


Comment : faire défiler un formulaire d'étiquettes

Mise à jour : novembre 2007

Dans la mesure où un contrôle Label ne reçoit pas le focus et ne prend pas en charge les opérations de tabulation, une application Smartphone constituée uniquement de contrôles Label n'autorise pas l'utilisateur à naviguer jusqu'aux étiquettes situées au-delà de la zone client visible du formulaire. L'utilisateur d'une application Pocket PC peut appuyer sur les barres de défilement pour naviguer, mais cette fonction n'est pas disponible sur Smartphone.

Vous pouvez implémenter la navigation en fournissant un code dans le gestionnaire d'événements pour l'événement KeyDown qui règle la propriété AutoScrollPosition.

Pour faire défiler un formulaire de contrôles Label

  1. Ajoutez plusieurs contrôles Label au formulaire afin que certains se situent au-dessous de la zone client visible. Utilisez les touches de direction dans le concepteur Microsoft Visual Studio 2005 ou écrivez le code d'initialisation pour les positionner.

  2. Dans le constructeur du formulaire, affectez aux propriétés KeyPreview et AutoScroll la valeur true. Les utilisateurs de C# doivent joindre un délégué pour le gestionnaire d'événements KeyDown.

    Me.KeyPreview = True
    Me.AutoScroll = True
    
    this.KeyPreview = true;
    this.KeyDown += new KeyEventHandler(Form1_KeyDown);
    this.AutoScroll = true;
    
  3. Définissez la propriété AutoScrollPosition pour un déplacement vertical en fonction d'un nombre défini de pixels pour la coordonnée du point y. L'exemple de code suivant utilise 16. Notez que le code est complexe, car AutoScrollPosition est décalé en fonction de valeurs négatives, mais les valeurs de points fournies doivent être positives.

    Private Sub Form1_KeyDown(ByVal Sender As System.Object, _
        ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        If e.KeyCode = System.Windows.Forms.Keys.Up Then
            Me.AutoScrollPosition = New Point(0, -Me.AutoScrollPosition.Y - 16)
        End If
        If e.KeyCode = System.Windows.Forms.Keys.Down Then
            Me.AutoScrollPosition = New Point(0, -Me.AutoScrollPosition.Y + 16)
        End If
    End Sub
    
    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if ((e.KeyCode == System.Windows.Forms.Keys.Up))
        {
            this.AutoScrollPosition = new Point(0, -this.AutoScrollPosition.Y - 16);
        }
        if ((e.KeyCode == System.Windows.Forms.Keys.Down))
        {
            this.AutoScrollPosition = new Point(0, -this.AutoScrollPosition.Y + 16);
        }
    

Compilation du code

Cet exemple nécessite des références aux espaces de noms suivants :

Voir aussi

Concepts

.Rubriques Comment relatives au .NET Compact Framework

Autres ressources

Développement de SmartPhone et le .NET Compact Framework