2010-10-22 16 views
-1

Fondamentalement, Im faire une application de peinture très similaire à MSPaint. L'idée est que l'utilisateur clique n'importe où sur le formulaire et devrait être capable d'écrire du texte dans un contrôle. Et ensuite, ce texte devrait être affiché dans la méthode graphique g.drawstring.Comment dessiner du texte à l'exécution

+1

Beau travail .. – nothrow

Répondre

3

Je ne veux pas faire le tout pour vous, mais voici un aperçu de base d'une façon d'atteindre les objectifs que vous définissez. Ce n'est pas nécessairement le meilleur moyen, mais il devrait vous aider à démarrer et vous présenter un certain nombre de concepts WinForms.

La rédaction du texte
Créer une Form et ajoutez un contrôle TextBox à elle. Assurez-vous qu'il est caché par défaut. Remplacez la méthode OnMouseClick de votre Form et ajoutez le code qui vérifie si le TextBox est visible et si non, le montre et met l'accent dessus pour que l'utilisateur entre leur texte. Si le TextBox est déjà visible, le code doit le masquer et créer un nouveau UserControl à sa place qui affiche le texte (voir ci-dessous pour les détails de ce UserControl).

Ajoutez également un gestionnaire d'événements au TextBox de sorte que si l'utilisateur clique sur Esc, il annule l'édition et s'il appuie sur Entrée, le texte est accepté et le UserControl est créé.

Afficher le texte
Créer une UserControl et assurez-vous que les styles sont fixés UserPaint et Opaque dans sa construction (voir SetStyle - vous pouvez également envisager OptimizedDoubleBuffer et AllPaintingInWmPaint car cela peut réduire vacillante si elle ne nécessite code de peinture supplémentaire). Remplacez la méthode OnPaint dans votre UserControl et implémentez le code pour dessiner la chaîne (rappelez-vous, vous aurez également besoin d'un moyen de définir le texte sur le contrôle).

Conclusion
Si vous accrochez à tout cela, vous devriez avoir quelque chose qui semble répondre à vos besoins. Pour plus d'expérimentation, considérez comment vous pouvez supprimer le besoin du UserControl. Bonne chance et amusez-vous bien!