Oui c'est pour redisposer les controls au choix de l'utilisateur. Les positions (Top et left) sont enregistrées dans un base de données et il peut les mettre ou il veut
Le soucis n'est pas le drag'n'drop, ce que je veux c'est pouvoir sélectionner plusieurs controls en même temps afin de faire un drag'n'drop global sur les X objets (Ce que l'on peux faire en mode conception)
Par définition, il n'y a pas possiblité de "sélectionner" des controles (pas même un seul controle à la fois) au runtime.
il va falloir que tu construise cela de toute pièce. Je te propose quelques pistes :
1- Sur les evt Click() de tes controles, faire appel à une fonction qui mettra en évidence le controle cliqué d'une facon graphique (en dessinant une frame rectangulaire rouge autour par exemple)
2- Utiliser les evt KeyDown et KeyUp de la form (dont la propriété KeyPreview aura été passée à True au préalable, sinon ca va buguer !) pour mémoriser, via une variable globale, le fait qu'uen touche <Controle> du clavier est enfoncé !
3- Au click sur un controle, vérifier l'état de la touche <Controle> (voir pointN°2) pour savoir s'il s'agit de l'extension sélection ou de la sélection d'un nouveau controle seul (auquel cas il faudra éffacé le rectangle sur le controle qui était sélectionné auparavant)
4- Au fur et à mesure des sélections, il faudra gérer d'une façon ou d'une autre la mémorisation des contrôles sélectionné, ne serait-ce que pour que la procédure de déplacement proprement dite, puisse savoir lesquels elle doit bouger ...
5- La procédure de déplacement se déclenchera sur un Evt MouseMove() d'un des controles sélectionné, avec le bouton de souris enfoncé
Voila les grandes lignes de ce qu'il te reste à coder ...