Comment utiliser une scrollbar

cs_ledge Messages postés 12 Date d'inscription jeudi 10 octobre 2002 Statut Membre Dernière intervention 26 novembre 2002 - 10 oct. 2002 à 13:49
capoueidiablo Messages postés 316 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 1 février 2010 - 17 juil. 2003 à 10:22
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

cs_dido Messages postés 41 Date d'inscription mardi 14 mai 2002 Statut Membre Dernière intervention 17 janvier 2003
10 oct. 2002 à 16:12
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....

@+
0
cs_ledge Messages postés 12 Date d'inscription jeudi 10 octobre 2002 Statut Membre Dernière intervention 26 novembre 2002
10 oct. 2002 à 20:19
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
0
cs_cissou06 Messages postés 124 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 16 mai 2007 1
2 juil. 2003 à 18:09
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
0
capoueidiablo Messages postés 316 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 1 février 2010 1
17 juil. 2003 à 10:20
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--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
capoueidiablo Messages postés 316 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 1 février 2010 1
17 juil. 2003 à 10:22
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
0
Rejoignez-nous