Comment puis-je permettre à l'utilisateur de dessiner une ligne dans un formulaire? Utiliser le bouton gauche de la souris pour dessiner et le bouton droit de la souris pour effacer.Autoriser l'utilisateur à dessiner une ligne sur le formulaire dans une application WinForms
Répondre
Pas si compliqué, un exemple rapide ... Je n'ai pas inclus les contrôles ici.
Graphics g = null; // initialize in Form_Load with this.CreateGraphics()
Point lastPoint;
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
lastPoint = e.Location;
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
g.DrawLine(Pens.Blue, lastPoint, e.Location);
lastPoint = e.Location;
}
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
}
Ce qui précède est un exemple pour montrer comment dessiner un formulaire. Idéalement, vous devez placer toutes les coordonnées de ligne dans une collection et dessiner en utilisant DrawLines(). Ensuite, utilisez Graphics :: DrawLines() dans le formulaire :: OnPaint. Lorsque vous cliquez sur le bouton droit de la souris, effacez la collection de points et forcez un redessin.
En fin de compte, vous voudrez peut-être contenir tout le dessin/effacement action dans un contrôle spécifique et gérer sa réactualisation/état de infirmation de manière cohérente, mais la réponse de A9S6 va sûrement vous aider à démarrer et profiter GDI + dessin;)
Exemple qui tire la ligne et utilise le lieu pour la peinture correspond le:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<Point> points = new List<Point>();
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
points.Add(e.Location);
Invalidate();
}
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
if (points.Count > 2)
{
e.Graphics.DrawLines(Pens.Black, points.ToArray());
}
}
}
le ToArray() n'est pas très agréable quand la liste obtient longtemps cependant.
- 1. Comment faire pour dessiner une ligne pointillée dans .NET (WinForms)
- 2. Comment dessiner une ligne sur le LinearLayout?
- 3. Dessiner une ligne 2D sur un canevas
- 4. Autoriser l'utilisateur à sélectionner une ligne UIPickerView en appuyant sur
- 5. Comment dessiner une ligne sur un BitmapSource existant dans WPF?
- 6. Quel est le contexte d'exécution d'un formulaire ouvert dans le concepteur pour une application winforms?
- 7. Comment dessiner une roue de couleurs dans une application WPF?
- 8. Comment autoriser l'utilisateur à déplacer un contrôle sur le formulaire
- 9. Comment ajouter une fenêtre WPF à une application WinForms
- 10. Dessiner une flèche sur un objet ligne dans VB6
- 11. Comment dessiner une flèche entre deux images dans WinForms?
- 12. Dessiner une ligne de connexion dans RaphaelJS
- 13. Autoriser l'utilisateur à soumettre des images dans une application Cocoa
- 14. Dessiner une ligne dans Vue: Non Dessin
- 15. Comment dessiner une ligne horizontale dans ListView?
- 16. WinForms sur un formulaire
- 17. Article sur l'utilisation de Firebird.NET dans une application WinForms
- 18. Autoriser une application Web à accéder à un fichier local
- 19. Héberger une application Silverlight dans l'application Winforms
- 20. Rendre une application Winforms intelligente
- 21. Comment dessiner une image en appuyant sur un bouton dans WinForms?
- 22. Comment autoriser plusieurs utilisateurs à accéder à une application ASP.NET sur une même machine?
- 23. Autoriser les utilisateurs à entrer une liste d'éléments de longueur variable dans le formulaire asp.net
- 24. Comment dessiner une chaîne sur une image à affecter en tant qu'arrière-plan à un contrôle dans Winforms?
- 25. Comment autoriser CTRL-V (Coller) sur une zone de texte Winforms?
- 26. intégrer une application WinForms dans une page Web?
- 27. Comment autoriser une application facebook? PHP
- 28. iPhone OpenGL pour dessiner une ligne solide?
- 29. Dessiner une ligne/un chemin sur Google Maps
- 30. Comment dessiner une ligne avec Cocos2d-iPhone
Vérifiez l'exemple de code dans ce fil: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/c8e09147-dfea-4afa-8006-7c87c7967fe5 –