Position d'une form par rapport a la souris

Résolu
philagood Messages postés 13 Date d'inscription mardi 2 octobre 2007 Statut Membre Dernière intervention 7 mai 2015 - Modifié par Whismeril le 7/05/2015 à 06:05
philagood Messages postés 13 Date d'inscription mardi 2 octobre 2007 Statut Membre Dernière intervention 7 mai 2015 - 7 mai 2015 à 22:02
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.

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 7/05/2015 à 07:00
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.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
7 mai 2015 à 11:01
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()
0
philagood Messages postés 13 Date d'inscription mardi 2 octobre 2007 Statut Membre Dernière intervention 7 mai 2015
7 mai 2015 à 22:02
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

--
0
Rejoignez-nous