7
votes

Comment puis-je créer mon propre concepteur de formulaire?

Je commence mon premier projet C # et je souhaite faire un "concepteur de formulaire" (comme celui de VS).

L'idée est, il y aura un concepteur de formes visuels avec une boîte à outils limitée, qui générera un code Python (plus tard) pour créer le même formulaire.

problème est que je n'ai aucune idée de la façon de commencer. Tout d'abord, j'ai le concepteur de formulaire en vs: comment faire une "forme-in-a-forme?"

Suivant ... Je ne sais pas à quel point cela va être compliqué. Je suppose que je pouvais simplement créer de petites boîtes apparaître à côté de chaque contrôle créé sur le formulaire lorsqu'il est cliqué, pour le redimensionnement et faire une zone de texte apparaît lorsque vous avez cliqué à double cliquée ou à modifier le texte dedans ... des choses comme ça.

Donc, une autre chose que je voudrais savoir est la suivante:

J'ai une expérience de programmation en C et C ++, j'ai terminé PHP pendant plusieurs années et je commence par Python à partir de récemment. J'ai généré des formulaires de manière dynamique dans VB6. Compte tenu de cette expérience, suis-je debout sur ma tête avec ce projet?


1 commentaires

Décrivez-vous un projet d'exécution C # qui simule une interface utilisateur pour la création de WinForms ici que vous traduisez ensuite "sous la hotte" en python? Ou, parle-tu de l'interface utilisateur de conception?


3 Réponses :


3
votes

On dirait que vous êtes au courant, il est non trivial pour une première minuterie C #. Si vous le gardez assez simple, cela ressemble à vous vous diriger dans la bonne direction (bien qu'un concepteur de formulaire basé sur le Web puisse être plus facile).

SharpDEvelop serait un exemple d'un IDE complet qui peut être réutilisé, mais c'est bien sur le dessus.

bonne chance!


4 commentaires

Avez-vous une idée de la manière dont je dessinerais une forme sous une forme, telle que dans le concepteur de formulaire VS? En ce moment, je joue avec l'idée d'avoir une fenêtre parent MDI et des fenêtres enfants seront "modifiables" ... ce qui pourrait fonctionner, je suppose


@Carson Le concepteur de formulaire VS ne vous permet pas de placer / dessiner un formulaire visuellement à l'intérieur d'un autre formulaire au moment de la conception: dans le modèle MDI, vous devez définir le MDIParent dans le code et vous ne «voir» Le formulaire MDICHILD jusqu'à ce que vous exécuter le programme. Usercontrols, et même "Contrôles dérivés" qui descendent de Winforms Controls comme TreeView and ListView: Celles-ci apparaîtront dans la boîte à outils de conception: mais non. Oui, bien sûr, au moment de l'exécution, vous pouvez déplacer cependant des formulaires de MDICHILD que vous avez créés.


Juste, c'est ce que je pensais. Regardez le lien dans la réponse acceptée - c'est une sorte de mon objectif, il a été écrit en C # - Peut-on être fait avec le concepteur de formulaire ou qu'il s'agit simplement d'une configuration MDI qui a été modifiée?


Parmi les 3 projets mentionnés, le seul projet Open Source et le seul qui n'incluait pas une mise en garde contre les expériences / capacités de l'utilisateur était SharpDEvelop. (Je ne peux pas dire avec certitude, mais vous pourriez peut-être même profiter de sa capacité à générer des Winforms + Python). Les échantillons expérimentaux du projet de code peuvent se révéler être un peu trop désagréable pour vous si vous avez une livrable ...



6
votes

Ce ressemble à un très bon endroit pour commencer. Il a un très bon exemple pour vous aider à démarrer. Vous pouvez même télécharger sa source (inscription requise).


1 commentaires

Génial, je vais regarder ce code. Je suis sûr que je serai capable de le comprendre de cela - merci



3
votes

Pour la plupart des gens qui commencent dans C #, ce projet serait trop. Avec votre fond VB6, vous pourrez peut-être le retirer, cependant.

Voici un indice: le concepteur Visual Studio Windows Forms dessine des commandes sur sa surface - en demandant aux contrôles de se dessiner.


3 commentaires

J'ai fait quelque chose de similaire dans VB6, où des formes ont été générées sur la base de scripts. J'étais juste confus à propos de mettre des formes sous d'autres formes - pas exactement sûr de savoir comment vous interpréter le dernier point, je suppose que cela viendra clair une fois que je comprends un peu plus sur le processus.


@Carson: Vous avez demandé comment dessiner sur le formulaire - J'ai répondu que vous devriez obtenir les commandes que vous placez sur le formulaire pour se dessiner. Devenez très familier avec les méthodes et les propriétés de la classe .


Il y a 8 ans, j'ai trouvé un concepteur de formulaire entièrement fonctionnel sur Google (pour VB6). Mais je ne peux pas le trouver aujourd'hui.