Controle interactif : deplacement et redimenssionement

Soyez le premier à donner votre avis sur cette source.

Vue 10 631 fois - Téléchargée 1 215 fois

Description

bonjour,
cela fait longtemps que je n'ai rien posté sur CodeS-SourceS, j'ai donc décider de partager mon dernier contrôle personalisé.
inspiré du designer de Visual Studio, InteractiveControl est une classe qui hérite de Control.
Tous les contrôles qui héritent de InteractiveControl auront la capacité d'être bougé par l'utilisateur et/ou redimensionné selon votre volonté.

j'espère que ce code va vous plaire, si vous avez des questions, n'hésitez pas à les poser

Source / Exemple :


tout est dans le zip
oubliez pas, il vous faut .net 2.0

Conclusion :


le programme a été réalisé sur Visual C# Express Edition

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
37
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
2 septembre 2010

Manifique travail badrbadr, même si pour l'instant je n'ai pas encore tout pigé, c'est vraiment ce que je cherchais. Comme je le disais sur un autre thread, je trouve bizarre que ce que tu as développé toi même ne soit pas une méthode standard de contrôle puisque MS l'implémente en Design mode. Bref, sûrement veulent-ils en garder pour la suite (belle mentalité).
Merci, je me mets à bosser la dessus.
PS : Je pense aussi utiliser l'astuce de mastercatz pour ajouter un niveau d'abstraction. Si tu as déjà travaillé la dessus, je suis à ton écoute. Je vais aussi interroger mastercatz à ce sujet.
E. Laplane
Messages postés
105
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
22 octobre 2008
15
Tout d'abord merci pour ce code badrbadr.
Sinon Mastercatz pourrais tu me donner le code de ton interface et tes MoveButton et ResizeButton ca m'aiderai vachement.
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
2
éé super je cherchais sans chercher et je tombe sur ta source juste ce qu'il me fallait super
je mets 9/10
++
Messages postés
193
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
12 août 2010

Bon code, il m'a d'ailleurs servi pour mon projet, j'ai cependant juste une petite remarque. Personnelement j'ai besoin de textbox, checkbox, combobox redimensionnables pendant l'execution.
Donc si on suit ton code, il faudrait créer 1 fichier InteractiveControl par composant en changeant l'héritage du Control par le composant nécessaire. Or en faisant comme ca il faudrait aussi créer une classe MoveButton et ResizeButtion adaptée à la classe de chaque Controle ainsi créé.
Pour palier à ca, j'ai modifié le projet en ajoutant une interface (voir code apres) et je fais implémenter cette interface par tous les InteractiveControl créés. Apres il ne reste plus qu'à modifier les classes ResizeButton et MoveButton en remplacant les variables de type InteractiveControl par l'interface. Comme ca dans 1 seul projet j'ai autant de fichers InteractiveControl que de controles voulu + 1 fichier Move Button et 1 fichier ResizeButton communs à tous les autres + le fichier interface.
Je sais aps si j'ai été bien clair mais voila ce que j'ai fait (et ca marche) ^^
En tout cas merci bcp pour cette source, ca m'a bien aidé.

Voici le code de l'interface :

public interface IInteractive {
void UpdateLocation(Point newLocation);
void UpdateSizeAndLocation(Point mouseMove);
void UpdateSelectionLocation();
void UpdateSize(Point mouseMove);
int Left{ get; set; }
int Top{ get; set; }
int Width{ get; set; }
int Height{ get; set; }
Point Location{ get; set; }
}
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
Sympa :)

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.