Je développe un petit C# programme -winforms, qui a une fonction qui permet aux utilisateurs d'ajouter des boutons et des différents contrôles à l'exécution.Conseils de mise en œuvre: Liaison d'un bouton (Cliquez sur l'événement) à une fonction et à un autre contrôle trop
Le scénario que je suis confronté est la suivante:
-
1) L'utilisateur ajoute un bouton et définit ses propriétés (par une boîte de dialogue).
2) L'utilisateur ajoute un autre contrôle (définit également ses propriétés).
3) L'utilisateur choisit le bouton et choisit lier à partir d'un élément de menu.
4) une nouvelle boîte de dialogue affichera un menu déroulant affiche tous les « autres contrôles », un autre DropDown montrera les fonctions (précodées), les utilisateurs doivent choisir 1 des contrôles et une fonction pour les lier au clic du bouton un événement.
5) Lorsque l'utilisateur choisit de libérer sa conception, un fichier EXE sera généré qui aura le programme simple l'utilisateur conçu (penser encore cette étape plus)
Mon idée actuelle de mise en œuvre:
Un dictionnaire sera maintenez tous les boutons et leurs fonctions et commandes liées correspondantes .. (Key = buttonID, Value = objet ou dictionnaire tenant le nom de fonction et Control ID)
Lorsque l'utilisateur choisit de "libérer" son design, le code Construire le formulaire et tous les contrôles en tant que texte et utiliser le dictionnaire pour générer le bouton de code approprié pour connecter l'événement de clic de chaque bouton à la fonction appropriée. Le texte contiendra également d'autres dictionnaires insérés dans ce TEXT qui lieront chaque bouton à son contrôle lié (un dictionnaire pour chaque fonction), ce qui sera utilisé lorsqu'une fonction est appelée à Distinguer entre les différents contrôles liés.
Le texte sera inséré dans un fichier .cs qui sera compilé pour générer le fichier EXE (toujours penser encore des façons d'automatiser cette étape).
Je me sens comme cette solution est trop complexe et qu'il pourrait y avoir d'autres solutions plus simples.
TIA
EDIT:
Ce projet est simple, qui vise à aider les non-programmeurs de créer leurs propres programmes simples, comme l'inventaire de supermarché, ou bibliothèque DVD magasin. Pour l'instant il va faire des tâches de calculatrice simples (1 zone de texte, un couple de boutons et des fonctions comme ADD, Subtract et autres).
Merci pour les idées, j'ajoute plus de détails sur le programme lui-même. –
Je suis en train de compiler le code des utilisateurs pour rendre le fichier exe portable à d'autres ordinateurs, mais la conception en série de l'utilisateur est apparue en tant qu'option, puisqu'il peut créer plusieurs designs à Release, la sérialisation est plus appropriée pour une sauvegarde/ouverture fonctionnalités. –
que diriez-vous d'une structure de fichier complète. disons par exemple Tous les objets sérialisés dans un programme utilisateur appelé "Calc" sont stockés dans Calc /. à laquelle les objets sérialisés sont stockés là-dedans. Cela permettrait de réaliser plus d'un dessin et de permettre à 2 «boutons 1» d'exister dans le même espace sans se remplacer mutuellement. puis un fichier texte unique avec le nom du répertoire que vous voulez charger votre programme placé à la racine. – Skintkingle