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
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
Sinon Mastercatz pourrais tu me donner le code de ton interface et tes MoveButton et ResizeButton ca m'aiderai vachement.
je mets 9/10
++
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; }
}
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.