Tiens, voici un exemple tres tres sommaire d'un panel qui te permet de tracer un rectangle dedans (et seulement du haut vers le bas).
Ca te permettra de comprendre comment dessiner dans un controle.
using
System;
using System.Drawing;
using System.Windows.Forms;
namespace Test
{
public class MyPanel : Panel
{
private bool mouseDown;
private Point startPoint;
private Size size;
private Pen p = new Pen(Color.Black, 1.0f);
public MyPanel()
{
this.SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer, true);
this.MouseDown += new MouseEventHandler(MyPanel_MouseDown);
this.MouseUp += new MouseEventHandler(MyPanel_MouseUp);
this.MouseMove +=new MouseEventHandler(MyPanel_MouseMove);
}
private Bitmap backBuffer;
protected override void OnPaint(PaintEventArgs e)
{if(backBuffer <bold>null) backBuffer</bold> new Bitmap(this.Width, this.Height);
Graphics g = Graphics.FromImage(backBuffer);
g.Clear(Color.White);
if(mouseDown)
g.DrawRectangle(p, new Rectangle(startPoint, size));
g.Dispose();
e.Graphics.DrawImageUnscaled(backBuffer, 0, 0);
}
private void MyPanel_MouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
startPoint = new Point(e.X, e.Y);
}
private void MyPanel_MouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
}
private void MyPanel_MouseMove(object sender, MouseEventArgs e)
{
if(mouseDown)
{
size = new Size(e.X - startPoint.X, e.Y - startPoint.Y);
this.Invalidate();
// Redessine la feneter
}
}
}
}
Bonne continuation
Mx