Le problème:
J'ai une picturebox2 dans une autre picturebox1, une hscroller et une
vscroller.
La picbox2.picture est en faite une carte .
La picbox2 est plus grande que la picbox1 et avec les barscroll je peux
me deplacer sur cette carte mais en ne voyant qu'une partie de la
carte.
Sur cette carte je peux tracer des lignes avec le bouton droit de la
souris, mais que sur la partie visible.
Tout cela fonctionne très bien...
Mon souhait:
quand je dessine la ligne avec le bouton droit de la souris, je
voudrais pouvoir me déplacer en même temps dans les parties invisibles
de la carte, j'ai pensé aux touches de direction du clavier pour bouger
la carte en même temps que ma ligne se trace, mais comment faire ?
merci
--
Adresse mail : john-pet@wanadoo.fr
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacques93
Bonjour John-Pet, John-Pet a écrit :
Bonjours à toutes et tous
Le problème: J'ai une picturebox2 dans une autre picturebox1, une hscroller et une vscroller. La picbox2.picture est en faite une carte . La picbox2 est plus grande que la picbox1 et avec les barscroll je peux me deplacer sur cette carte mais en ne voyant qu'une partie de la carte. Sur cette carte je peux tracer des lignes avec le bouton droit de la souris, mais que sur la partie visible. Tout cela fonctionne très bien...
Mon souhait: quand je dessine la ligne avec le bouton droit de la souris, je voudrais pouvoir me déplacer en même temps dans les parties invisibles de la carte, j'ai pensé aux touches de direction du clavier pour bouger la carte en même temps que ma ligne se trace, mais comment faire ?
merci
Je ne suis pas sur que cela corresponde exactement à tes besoins. Le code suivant permet de déplacer Picture2 dans Picture1 grâce aux flèches (comme si on se servait des ascenseurs avec la souris). Reste à synchroniser cela avec les coordonnées de la souris :
Option Explicit
Private Sub Form_Load() With Me.VScroll1 .Max = Me.Picture2.Height - (Me.Picture1.Height - Me.HScroll1.Height) .SmallChange = 30 .LargeChange = 300 End With With Me.HScroll1 .Max = Me.Picture2.Width - (Me.Picture1.Width - Me.VScroll1.Width) .SmallChange = 30 .LargeChange = 300 End With Me.KeyPreview = True End Sub
Private Sub HScroll1_Change() Me.Picture2.Left = -Me.HScroll1.Value End Sub
Private Sub VScroll1_Change() Me.Picture2.Top = -Me.VScroll1.Value End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyLeft: With HScroll1 If .Value > .LargeChange Then .Value = .Value - .LargeChange Else .Value = 0 End If End With
Case vbKeyRight: With Me.HScroll1 If .Value + .LargeChange < .Max Then .Value = .Value + .LargeChange Else .Value = .Max End If End With
Case vbKeyUp: With Me.VScroll1 If .Value > .LargeChange Then .Value = .Value - .LargeChange Else .Value = 0 End If End With
Case vbKeyDown: With Me.VScroll1 If .Value + .LargeChange < .Max Then .Value = .Value + .LargeChange Else .Value = .Max End If End With
End Select End Sub
--
Cordialement,
Jacques.
Bonjour John-Pet,
John-Pet a écrit :
Bonjours à toutes et tous
Le problème:
J'ai une picturebox2 dans une autre picturebox1, une hscroller et une
vscroller.
La picbox2.picture est en faite une carte .
La picbox2 est plus grande que la picbox1 et avec les barscroll je peux
me deplacer sur cette carte mais en ne voyant qu'une partie de la carte.
Sur cette carte je peux tracer des lignes avec le bouton droit de la
souris, mais que sur la partie visible.
Tout cela fonctionne très bien...
Mon souhait:
quand je dessine la ligne avec le bouton droit de la souris, je voudrais
pouvoir me déplacer en même temps dans les parties invisibles de la
carte, j'ai pensé aux touches de direction du clavier pour bouger la
carte en même temps que ma ligne se trace, mais comment faire ?
merci
Je ne suis pas sur que cela corresponde exactement à tes besoins. Le
code suivant permet de déplacer Picture2 dans Picture1 grâce aux flèches
(comme si on se servait des ascenseurs avec la souris). Reste à
synchroniser cela avec les coordonnées de la souris :
Option Explicit
Private Sub Form_Load()
With Me.VScroll1
.Max = Me.Picture2.Height - (Me.Picture1.Height - Me.HScroll1.Height)
.SmallChange = 30
.LargeChange = 300
End With
With Me.HScroll1
.Max = Me.Picture2.Width - (Me.Picture1.Width - Me.VScroll1.Width)
.SmallChange = 30
.LargeChange = 300
End With
Me.KeyPreview = True
End Sub
Private Sub HScroll1_Change()
Me.Picture2.Left = -Me.HScroll1.Value
End Sub
Private Sub VScroll1_Change()
Me.Picture2.Top = -Me.VScroll1.Value
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyLeft:
With HScroll1
If .Value > .LargeChange Then
.Value = .Value - .LargeChange
Else
.Value = 0
End If
End With
Case vbKeyRight:
With Me.HScroll1
If .Value + .LargeChange < .Max Then
.Value = .Value + .LargeChange
Else
.Value = .Max
End If
End With
Case vbKeyUp:
With Me.VScroll1
If .Value > .LargeChange Then
.Value = .Value - .LargeChange
Else
.Value = 0
End If
End With
Case vbKeyDown:
With Me.VScroll1
If .Value + .LargeChange < .Max Then
.Value = .Value + .LargeChange
Else
.Value = .Max
End If
End With
Le problème: J'ai une picturebox2 dans une autre picturebox1, une hscroller et une vscroller. La picbox2.picture est en faite une carte . La picbox2 est plus grande que la picbox1 et avec les barscroll je peux me deplacer sur cette carte mais en ne voyant qu'une partie de la carte. Sur cette carte je peux tracer des lignes avec le bouton droit de la souris, mais que sur la partie visible. Tout cela fonctionne très bien...
Mon souhait: quand je dessine la ligne avec le bouton droit de la souris, je voudrais pouvoir me déplacer en même temps dans les parties invisibles de la carte, j'ai pensé aux touches de direction du clavier pour bouger la carte en même temps que ma ligne se trace, mais comment faire ?
merci
Je ne suis pas sur que cela corresponde exactement à tes besoins. Le code suivant permet de déplacer Picture2 dans Picture1 grâce aux flèches (comme si on se servait des ascenseurs avec la souris). Reste à synchroniser cela avec les coordonnées de la souris :
Option Explicit
Private Sub Form_Load() With Me.VScroll1 .Max = Me.Picture2.Height - (Me.Picture1.Height - Me.HScroll1.Height) .SmallChange = 30 .LargeChange = 300 End With With Me.HScroll1 .Max = Me.Picture2.Width - (Me.Picture1.Width - Me.VScroll1.Width) .SmallChange = 30 .LargeChange = 300 End With Me.KeyPreview = True End Sub
Private Sub HScroll1_Change() Me.Picture2.Left = -Me.HScroll1.Value End Sub
Private Sub VScroll1_Change() Me.Picture2.Top = -Me.VScroll1.Value End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyLeft: With HScroll1 If .Value > .LargeChange Then .Value = .Value - .LargeChange Else .Value = 0 End If End With
Case vbKeyRight: With Me.HScroll1 If .Value + .LargeChange < .Max Then .Value = .Value + .LargeChange Else .Value = .Max End If End With
Case vbKeyUp: With Me.VScroll1 If .Value > .LargeChange Then .Value = .Value - .LargeChange Else .Value = 0 End If End With
Case vbKeyDown: With Me.VScroll1 If .Value + .LargeChange < .Max Then .Value = .Value + .LargeChange Else .Value = .Max End If End With
End Select End Sub
--
Cordialement,
Jacques.
John-Pet
Merci Jacques
c'est exactement ce que je cherchais, quelques modifs nécessaires est c'est OK
encore merci
JP
Le 05/07/2008, Jacques93 a supposé :
Bonjour John-Pet, John-Pet a écrit :
Bonjours à toutes et tous
Le problème: J'ai une picturebox2 dans une autre picturebox1, une hscroller et une vscroller. La picbox2.picture est en faite une carte . La picbox2 est plus grande que la picbox1 et avec les barscroll je peux me deplacer sur cette carte mais en ne voyant qu'une partie de la carte. Sur cette carte je peux tracer des lignes avec le bouton droit de la souris, mais que sur la partie visible. Tout cela fonctionne très bien...
Mon souhait: quand je dessine la ligne avec le bouton droit de la souris, je voudrais pouvoir me déplacer en même temps dans les parties invisibles de la carte, j'ai pensé aux touches de direction du clavier pour bouger la carte en même temps que ma ligne se trace, mais comment faire ?
merci
Je ne suis pas sur que cela corresponde exactement à tes besoins. Le code suivant permet de déplacer Picture2 dans Picture1 grâce aux flèches (comme si on se servait des ascenseurs avec la souris). Reste à synchroniser cela avec les coordonnées de la souris :
Option Explicit
Private Sub Form_Load() With Me.VScroll1 .Max = Me.Picture2.Height - (Me.Picture1.Height - Me.HScroll1.Height) .SmallChange = 30 .LargeChange = 300 End With With Me.HScroll1 .Max = Me.Picture2.Width - (Me.Picture1.Width - Me.VScroll1.Width) .SmallChange = 30 .LargeChange = 300 End With Me.KeyPreview = True End Sub
Private Sub HScroll1_Change() Me.Picture2.Left = -Me.HScroll1.Value End Sub
Private Sub VScroll1_Change() Me.Picture2.Top = -Me.VScroll1.Value End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyLeft: With HScroll1 If .Value > .LargeChange Then .Value = .Value - .LargeChange Else .Value = 0 End If End With
Case vbKeyRight: With Me.HScroll1 If .Value + .LargeChange < .Max Then .Value = .Value + .LargeChange Else .Value = .Max End If End With
Case vbKeyUp: With Me.VScroll1 If .Value > .LargeChange Then .Value = .Value - .LargeChange Else .Value = 0 End If End With
Case vbKeyDown: With Me.VScroll1 If .Value + .LargeChange < .Max Then .Value = .Value + .LargeChange Else .Value = .Max End If End With
End Select End Sub
-- Adresse mail : Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Merci Jacques
c'est exactement ce que je cherchais, quelques modifs nécessaires est
c'est OK
encore merci
JP
Le 05/07/2008, Jacques93 a supposé :
Bonjour John-Pet,
John-Pet a écrit :
Bonjours à toutes et tous
Le problème:
J'ai une picturebox2 dans une autre picturebox1, une hscroller et une
vscroller.
La picbox2.picture est en faite une carte .
La picbox2 est plus grande que la picbox1 et avec les barscroll je peux me
deplacer sur cette carte mais en ne voyant qu'une partie de la carte.
Sur cette carte je peux tracer des lignes avec le bouton droit de la
souris, mais que sur la partie visible.
Tout cela fonctionne très bien...
Mon souhait:
quand je dessine la ligne avec le bouton droit de la souris, je voudrais
pouvoir me déplacer en même temps dans les parties invisibles de la carte,
j'ai pensé aux touches de direction du clavier pour bouger la carte en même
temps que ma ligne se trace, mais comment faire ?
merci
Je ne suis pas sur que cela corresponde exactement à tes besoins. Le code
suivant permet de déplacer Picture2 dans Picture1 grâce aux flèches (comme si
on se servait des ascenseurs avec la souris). Reste à synchroniser cela avec
les coordonnées de la souris :
Option Explicit
Private Sub Form_Load()
With Me.VScroll1
.Max = Me.Picture2.Height - (Me.Picture1.Height - Me.HScroll1.Height)
.SmallChange = 30
.LargeChange = 300
End With
With Me.HScroll1
.Max = Me.Picture2.Width - (Me.Picture1.Width - Me.VScroll1.Width)
.SmallChange = 30
.LargeChange = 300
End With
Me.KeyPreview = True
End Sub
Private Sub HScroll1_Change()
Me.Picture2.Left = -Me.HScroll1.Value
End Sub
Private Sub VScroll1_Change()
Me.Picture2.Top = -Me.VScroll1.Value
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyLeft:
With HScroll1
If .Value > .LargeChange Then
.Value = .Value - .LargeChange
Else
.Value = 0
End If
End With
Case vbKeyRight:
With Me.HScroll1
If .Value + .LargeChange < .Max Then
.Value = .Value + .LargeChange
Else
.Value = .Max
End If
End With
Case vbKeyUp:
With Me.VScroll1
If .Value > .LargeChange Then
.Value = .Value - .LargeChange
Else
.Value = 0
End If
End With
Case vbKeyDown:
With Me.VScroll1
If .Value + .LargeChange < .Max Then
.Value = .Value + .LargeChange
Else
.Value = .Max
End If
End With
End Select
End Sub
--
Adresse mail : john-pet@wanadoo.fr
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
c'est exactement ce que je cherchais, quelques modifs nécessaires est c'est OK
encore merci
JP
Le 05/07/2008, Jacques93 a supposé :
Bonjour John-Pet, John-Pet a écrit :
Bonjours à toutes et tous
Le problème: J'ai une picturebox2 dans une autre picturebox1, une hscroller et une vscroller. La picbox2.picture est en faite une carte . La picbox2 est plus grande que la picbox1 et avec les barscroll je peux me deplacer sur cette carte mais en ne voyant qu'une partie de la carte. Sur cette carte je peux tracer des lignes avec le bouton droit de la souris, mais que sur la partie visible. Tout cela fonctionne très bien...
Mon souhait: quand je dessine la ligne avec le bouton droit de la souris, je voudrais pouvoir me déplacer en même temps dans les parties invisibles de la carte, j'ai pensé aux touches de direction du clavier pour bouger la carte en même temps que ma ligne se trace, mais comment faire ?
merci
Je ne suis pas sur que cela corresponde exactement à tes besoins. Le code suivant permet de déplacer Picture2 dans Picture1 grâce aux flèches (comme si on se servait des ascenseurs avec la souris). Reste à synchroniser cela avec les coordonnées de la souris :
Option Explicit
Private Sub Form_Load() With Me.VScroll1 .Max = Me.Picture2.Height - (Me.Picture1.Height - Me.HScroll1.Height) .SmallChange = 30 .LargeChange = 300 End With With Me.HScroll1 .Max = Me.Picture2.Width - (Me.Picture1.Width - Me.VScroll1.Width) .SmallChange = 30 .LargeChange = 300 End With Me.KeyPreview = True End Sub
Private Sub HScroll1_Change() Me.Picture2.Left = -Me.HScroll1.Value End Sub
Private Sub VScroll1_Change() Me.Picture2.Top = -Me.VScroll1.Value End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyLeft: With HScroll1 If .Value > .LargeChange Then .Value = .Value - .LargeChange Else .Value = 0 End If End With
Case vbKeyRight: With Me.HScroll1 If .Value + .LargeChange < .Max Then .Value = .Value + .LargeChange Else .Value = .Max End If End With
Case vbKeyUp: With Me.VScroll1 If .Value > .LargeChange Then .Value = .Value - .LargeChange Else .Value = 0 End If End With
Case vbKeyDown: With Me.VScroll1 If .Value + .LargeChange < .Max Then .Value = .Value + .LargeChange Else .Value = .Max End If End With
End Select End Sub
-- Adresse mail : Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Jacques93
Bonjour John-Pet, John-Pet a écrit :
Merci Jacques
c'est exactement ce que je cherchais, quelques modifs nécessaires est c'est OK
encore merci
JP
Merci du retour :-)
--
Cordialement,
Jacques.
Bonjour John-Pet,
John-Pet a écrit :
Merci Jacques
c'est exactement ce que je cherchais, quelques modifs nécessaires est
c'est OK