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)
Version imprimable
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+
bonsoir,
Je mes suis remis à l'ouvrage et j'ai trouvé la solution :
Code:
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. :P
On peut donc faire plus court ! :
CQFD !Code:
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