addhandler fonctionne pour tout, même pour les classes non graphiques
par contre pour avoir le droit de droper sur un controle, celui ci doit avoir allowdrop = true (donc à setter dans ta boucle) (et peut etre gérer dragover)
Bonsoir,
Merci pour l'info mais après deux jours de recherches ça ne fonctionne toujours pas (impossible de dropper même avec addhandler, allowdrop=true et mousedown.enter).
Je continue le reste de mon programme en attendant de trouver la bonne astuce.
A+
La Connaissance est comme le rire elle est contagieuse en la partageant!
bonsoir,
Je mes suis remis à l'ouvrage et j'ai trouvé la solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 'Pour obtenir les coordonnées X et y des pièces listés - non utilisé dans ce programme ! Public Sub ControlFind() Dim pictureRN = Me.Controls.Find("RN", True) Dim pictureDN = Me.Controls.Find("DN", True) Dim pictureRB = Me.Controls.Find("RB", True) MessageBox.Show("RN: " + pictureRN(0).Location.ToString() + ",DN:" + pictureDN(0).Location.ToString() + ",RB:" + pictureRB(0).Location.ToString()) End Sub 'pour obtenir les coordonnées x et y de l'objet pointé Public Sub LoopControls() Dim localPoint As String = "" For Each con In Me.Controls If TypeOf con Is PictureBox Then Dim c As Control = con localPoint += c.Name + ":" + c.Location.ToString() + "," End If Next MessageBox.Show(localPoint.Substring(0, localPoint.Length - 1)) End Sub
On notera que 'If TypeOf con Is PictureBox Then 'exclu les controls dont le non ne contient pas Picturebox. Exemeple: RN ou MonImage seront exclu par contre PictureBox65 sera montré.
C'était si simple, il suffit de remplacer " If TypeOf con Is PictureBox Then" par " If TypeOf con Is MaChaine Then "
ou le string MaChaine est le nom de la picturebox que l'on veut afficher.
Les deux sub sont équivalent au niveau résultat, mais je préfère le second plus souple au niveau des choix.
On peut donc faire plus court ! :
CQFD !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Public Sub LoopControls() Dim localPoint As String = "" For Each con In Me.Controls 'If TypeOf con Is PictureBox Then 'exclu les controls dont le non ne contient pas Picturebox. Exemeple RN sera exclu. PictureBox65 sera montré. Dim c As Control = con If c.Name = Pieces Then PosX = c.Location.X.ToString : PosY = c.Location.Y.ToString ': localPoint += c.Name + ": " + c.Location.ToString + "," + " PosX " + PosX + " PosY " + PosY 'End If Next ' MessageBox.Show(localPoint.Substring(0, localPoint.Length)) End Sub
La Connaissance est comme le rire elle est contagieuse en la partageant!
À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.
Ô Saint Excel, Grand Dieu de l'Inutile.
Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager