Position d'une form par rapport a la souris [Résolu]

Messages postés
13
Date d'inscription
mardi 2 octobre 2007
Dernière intervention
7 mai 2015
-
Bonjour, a tous

j'ai fais un petit code que voici avec comme but de faire apparaitre une form a la position de la souris quand celle ci click sur un bouton.
une form avec un bouton 'button1'
et un evenement que voici.
   Private Sub Button1_MouseClick(sender As Object, e As MouseEventArgs) Handles Button1.MouseClick
        Dim frm As New Form
        frm.Location = PointToScreen(New Point(e.X, e.Y))
        frm.Size = New Size(100, 100)
        frm.Show()
    End Sub


je pensais pourtant ne mettre pas tromper mais la form n'apparait pas au bon endroit.

j'ai essayé aussi:
frm.SetDesktopLocation a la place frm.Location mais j'ai le même résultat.

quelqu'un peut me dire où j'ai loupé quelques choses ?

merci d'avance.

EDIT: Ajout de la coloration syntaxique.
Afficher la suite 

Votre réponse

3 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,
Pourquoi passer par des conversions et non utiliser directement la position du curseur par rapport à l'écran (puisque, somme toute, c'est bel et bien à cette position, que tu veux placer ton nouveau formulaire) ?
https://msdn.microsoft.com/fr-fr/library/system.windows.forms.cursor.position%28v=vs.110%29.aspx

devrait donc être quelque-chose ressemblant à ceci (corrige au besoin car je ne connais pas VB.Net):
 Dim ou_donc_sur_l_ecran As Point = Cursor.Position
Dim frm As New Form
frm.location = ou_donc_sur_l_ecran
frm.Show()

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
Bonjour

peut etre ainsi
Dim frm As New Form
frm.StartPosition = FormStartPosition.Manual
frm.Location = New Point(DirectCast(sender, Button).Location.X + e.X, DirectCast(sender, Button).Location.Y + e.Y)
frm.Size = New Size(100, 100)
frm.Show()
Commenter la réponse de cs_ShayW
Messages postés
13
Date d'inscription
mardi 2 octobre 2007
Dernière intervention
7 mai 2015
0
Merci
Bonjour,

Merci pour vos réponses, j'ai utilisé un peu des deux.

merci ucfoutu pour l'idée de la position de la souris par rapport l'écran, c'est vrais que j'ai vue compliquer pour rien.

merci cs_ShayW car tu m'a fait voir une erreur, j'avais oublier le
frm.StartPosition = FormStartPosition.Manual
qui sans ceci ne pouvais pas fonctionner.
comment marche le directcast ? c'est un convertisseur ?

bye

--
Commenter la réponse de philagood

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.