Fare ile form üzerinde serbest çizim işlemleri grafik ile uğraşanlar için en çok kullanılan yöntemlerden birini oluşturmaktadır. Özellikle okullarda akıllı tahtaların bulunması dokunmatik ortamda yazı yazılması işlemlerini sağlamaktadır. Bu uygulamamızda form üzerine eklenen panelin içinde fare ile çizim işlemlerini yapacağız.
Form üzerine eklenen panelin BorderStyle özelliğini FixedSingle yapalım. Panelin Mouse_Move, Mouse_Up, Mouse_Down olaylarını aktif hale getirelim. Aşağıdaki kodları yapıştıralım.
const int WH = 10; // width, height
bool ciz = false;
Graphics gr;
public Form1()
{
InitializeComponent();
gr = panel1.CreateGraphics();
}
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
ciz = true;
}
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if (ciz)
{
if (e.Button == MouseButtons.Left)
{
var brush = new SolidBrush(Color.Red);
gr.FillEllipse(brush, e.X, e.Y, WH, WH);
}
else if (e.Button == MouseButtons.Right)
{
var brush = new SolidBrush(Color.White);
gr.FillEllipse(brush, e.X, e.Y, WH, WH);
}
}
}
private void panel1_MouseUp(object sender, MouseEventArgs e)
{
ciz = false;
}
|