neo022
Messages postés17Date d'inscriptionvendredi 27 février 2004StatutMembreDernière intervention16 avril 2006
-
27 janv. 2006 à 23:26
Utilisateur anonyme -
28 janv. 2006 à 23:55
Bonjour tout le monde.
Après des heures de recherche sur le net dans les forums les sources... je fait enfin appel a vous!
Voila mon problème je voudrais que, lorsque je clique ds ma form n'importe ou et que je laisse le bouton gauche enfoncé, ma form bouge en meme temps que ma souris. Cela parait tout bête en effet mais pour avoir un effet parfaitement fluide sans bavure je galère alors voici mon code( j'ai essayer d'adapter un code vb6 en vb net car la converstion automatique merde (il y a des choses que vb net ne comprend pas et que vb 6 comprenait))
'Déclaration
Dim curx
As
Double
Dim cury
As
Double
Dim curxinst
As
Double
Dim curyinst
As
Double
Dim winx
As
Double
Dim winy
As
Double
'Commencement du code (ne pas tenir compte des labels
Private
Sub Form1_MouseDown(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.MouseEventArgs)
Handles
MyBase.MouseDown
curx = Cursor.Position.X
cury = Cursor.Position.Y
winx =
Me.Left
winy =
Me.Top
Me.DoDragDrop(
Me, DragDropEffects.Move)
End
Sub
Private
Sub Form1_DragOver(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.DragEventArgs)
Handles
MyBase.DragOver
Private
Sub Form1_Load(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load
Timer1.Interval = 1
Timer1.Start()
End
Sub
Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click
Me.SetDesktopLocation(0, 0)
End
Sub
Voila merci de bien vouloir analyser cela pour moi et de me faire part de vos propositions (si possible une source tte bête avec une form et le code pour la faire bouger)
Sinon ne tenez pas compte des labels c pour faire des tests enfin bref laiC tomB ca :P
Merci bcps Charles en plus je pense avoir compris tout le code (ps si dans mes commentaire je me suis planté n'hésiter pas a me le dire :P) .
Je pensais qu'il fallais obligatoirement paC par un drag c pour ca que je me suis aussi embrouillé
Vincent ;)
J'ai pas trop regarder le code mais je vois que tu fais quelque chose de fort bien compliqué.
Celui là devrai faire ce que tu veut en plus simple.
Private PtClick As System.Drawing.Point
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown If e.Button Windows.Forms.MouseButtons.Left Then PtClick e.Location
End Sub
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
MyBase.Location = New System.Drawing.Point(MyBase.Left + (e.X - PtClick.X), MyBase.Top + (e.Y - PtClick.Y))
End If
End Sub
Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
neo022
Messages postés17Date d'inscriptionvendredi 27 février 2004StatutMembreDernière intervention16 avril 2006 28 janv. 2006 à 12:39
Oki merci pour le code! Cela dit le e.lovation il ne le reconnais pas cela doit venir du fait que tu dois avoir la version 2005 et que moi j'ai que la version 2003 voici les option qu'il me propose :
e.(b utton or cliks or delta or empty or gettype or X or Y)
aussi stp pourais tu expliquer les ligne de ton code avec les byval je comprend pas grand chose je suis débutant de plus j'apprend un peu tout seul donc c pas facile :P merci d'avance!
Attention MyBase n'est pas le nom de la Form mais l'obejet qu'hérité la classe (donc, ici c'est bien la Form, mais ca aurait très bien pu être autre chose)
Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Je parle bien de ce commentaire
'alors la form appelé Mybase va changer de "location" ...
Mybase renvoie l'obejet qu'hérite la classe
MyClass renvoie tout ce que la classe contient sauf l'obejet qui l'hérite
Me renvoie les deux (MyBase et MyClass)
Donc dans le code, tout est bon.
Mais le commentaire aurait du être
'alors la form appelé Form1 va changer d'emplacement ...
Donc pour résumer, il est préférable d'utiliser MyBase et MyClass que Me (histoire qu'on s'y retrouve mieux) mais ce n'est pas obligatoire.
Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.