1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| namespace Project
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
CercleButton.Click += new EventHandler(CercleButton_Click_1);
LineButton.Click += new EventHandler(LineButton_Click);
this.MouseDown += new MouseEventHandler(im.clsLine_OnMouseDown);
this.MouseMove += new MouseEventHandler(im.clsLine_OnMouseMove);
this.MouseUp += new MouseEventHandler(im.clsLine_OnMouseUp);
}
private void CercleButton_Click_1(object sender, EventArgs e)
{
this.MouseClick += new MouseEventHandler(Form1_MouseClick);
}
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
this.MouseClick -= new MouseEventHandler(Form1_MouseClick);
drawCircle(e.X, e.Y);
}
private void drawCircle(int x, int y)
{
Graphics g;
g = CreateGraphics();
Rectangle myRectangle = new Rectangle(x, y, 50, 50);
Pen myPen = new Pen(Color.Blue, 2);
SolidBrush sb1 = new SolidBrush(Color.BlanchedAlmond);
g.FillEllipse(sb1, myRectangle);
g.DrawEllipse(myPen, myRectangle);
g.Dispose(); //libération de l'objet graphique
}
public class clsLine
{
Point ps = new Point(); // ps est le point start
Point pe = new Point(); // pe le point end
public clsLine(); //constructeur de classe
{
}
public void clsLine_OnMouseDown(Object sender, MouseEventArgs e)
{
ps.X = e.X;
ps.Y = e.Y;
pe = ps;
}
public void clsLine_OnMouseMove(Object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Form thisform = (Form)sender;
ControlPaint.DrawReversibleLine(thisform.PointToScreen(ps), thisform.PointToScreen(pe), Color.Black);
pe = new Point(e.X, e.Y);
ControlPaint.DrawReversibleLine(thisform.PointToScreen(ps), thisform.PointToScreen(pe), Color.Black);
}
}
public void clsLine_OnMouseUp(Object sender, MouseEventArgs e)
{
Form thisform = (Form)sender;
Graphics g = thisform.CreateGraphics();
Pen p = new Pen(Color.Blue, 2);
ControlPaint.DrawReversibleLine(thisform.PointToScreen(ps), thisform.PointToScreen(pe), Color.Black);
g.DrawLine(p, ps, pe);
g.Dispose();
}
private void LineButton_Click_1(object sender, EventArgs e)
{
}
}
}
} |
Partager