2010-05-06 2 views
0

Une aide? Voici mon code:La souris ne dessine pas à l'endroit prévu. Il peint la forme et non le contrôle

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace Client 
{ 
    public partial class MainChat : Form 
    { 
     bool ShouldPaint = false; 

     public MainChat() 
     { 
      InitializeComponent(); 
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); 
      this.ClientSize = new System.Drawing.Size(400, 400); 

      this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseDown); 
      this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseUp); 
      this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseMove); 
     } 

     private void pictureBox1_MouseMove(object sender, MouseEventArgs e) 
     { 
      if (ShouldPaint) 
      { 
       Graphics graphics = CreateGraphics(); 
       graphics.FillEllipse(new SolidBrush(Color.Black), e.X, e.Y, 10, 10); 
      } 
     } 

     private void pictureBox1_MouseUp(object sender, MouseEventArgs e) 
     { 
      ShouldPaint = false; 
     } 

     private void pictureBox1_MouseDown(object sender, MouseEventArgs e) 
     { 
      ShouldPaint = true; 
     } 
    } 
} 

Répondre

2

fixer la ligne

Graphics graphics = CreateGraphics(); 

à

Graphics graphics = pictureBox1.CreateGraphics(); 

La façon dont vous aviez obtient les graphiques de la forme comme dire this.CreateGraphics() qui est la raison pour laquelle il tire sur la forme. Tous les contrôles ont une méthode CreatGraphics() pour la peinture personnalisée.

+0

Merci! Travaillé comme un charme! Je vais sélectionner ceci comme résolu quand 10 minutes sont écoulées. Il y a une minuterie d'attente. –

0

Votre code demande de peindre le formulaire et non le contrôle.

L'objet graphique que vous obtenez est de la forme et non du contrôle.

Questions connexes