Comment utiliser une scrollbar

Signaler
Messages postés
12
Date d'inscription
jeudi 10 octobre 2002
Statut
Membre
Dernière intervention
26 novembre 2002
-
Messages postés
316
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
1 février 2010
-
Je voudrais deplacer des controles (seulement des "TextBox") qui se situent dans ma fenetre "form" en utilisant des scrollbars (une verticale et une horizontale). Je voudrais utiliser un code assez simple du style:

Private Sub mabarre_Change()
Dim boite

For Each moncontrol In ComboBox
moncontrol .Top = moncontrol .Top - mabarre.Value
Next

End Sub

Ca marche mais toujours dans le meme sens: que je veuille me deplacer vers le haut ou vers le bas, mon controle monte tout le temps.

Comment savoir si je clique sur la fleche du haut ou celle du bas

Merci de votre aide

5 réponses

Messages postés
41
Date d'inscription
mardi 14 mai 2002
Statut
Membre
Dernière intervention
17 janvier 2003

Salut,

essaie ce code, j'ai testé. met un vscroll avec des txtbox, et met ce code ds le change du vscroll.

Private Sub VScroll1_Change()

Dim ctl As Control
Static pos As Long

For Each ctl In Me.Controls
    If TypeOf ctl Is TextBox Then
        If pos < Me.VScroll1.Value Then
            ctl.Top = ctl.Top + Me.VScroll1.Value
        Else
            ctl.Top = ctl.Top - Me.VScroll1.Value
        End If
    End If
Next
    pos = Me.VScroll1.Value
    
End Sub


Tiens moi au courant.

Si qqun a un code moins long, je suis preneur....

@+
Messages postés
12
Date d'inscription
jeudi 10 octobre 2002
Statut
Membre
Dernière intervention
26 novembre 2002

Il y a un probleme dans ton programme car les TextBox se deplacent toujours du meme cote qu on clique sur la fleche du haut ou celle du bas.
Je crois que j ai resolu le probleme avec le code suivant. Il est un peu long mais il marche enfin presque. le deplacement est lineaire sauf si la scrollbar est au centre ( VscrollBar.Value= 0)

Rq: box est un TextBox indexe
defillementdroite est une VScrollbar

Private Sub defillementdroite_Change()

Dim boite
Static posdroite As Long
Dim sens As Single

sens = posdroite

For Each boite In box
posdroite = Me.defillementdroite.Value
If sens < posdroite Then
boite.Top = boite.Top - Abs(Me.defillementdroite.Value)
Else
boite.Top = boite.Top + Abs(Me.defillementdroite.Value)
End If
Next

posdroite = Me.defillementdroite.Value

End Sub

Merci quand meme car tu m as mit sur la voie

PS: si quelqu un trouve un programme moins long qu il me le dise
Messages postés
124
Date d'inscription
mercredi 2 juillet 2003
Statut
Membre
Dernière intervention
16 mai 2007

salut,
J'aimerais exploiter ton code mais pour cela il faudrait que je comprenne ce que represente tes "boite" et a quoi sert d'avoir indexe ton "box".
Merci d'avance
Messages postés
316
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
1 février 2010
1
Salut,
bon ce que vous raconter m'interesse enfin le principe alors que je vous explique :
j'ai deux controle text dans une picture box qui me sert de conteneur quand je bouge mon controle VScroll tout ce deplace, par contre ce que je voudrai c que quand je deplace mon curseur dans la text box seul la text box ou se trouve le curseur ce deplace et j'aimerai que les deux se deplace en meme temps.
--Capoueidiablo--
Messages postés
316
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
1 février 2010
1
remoi je c c pas tres claire mais pour simplifier le truc j'ai une textbox où je vais afficher du text et une autre ou je vais afficher les numeros de lignes