Я хочу создать приложение, в котором пользователь может манипулировать линией, которую он рисует. Что-то вроде удаления строки или ее выбора. Как мне это сделать?
заранее спасибо
Мне удалось сделать это, используя жестко закодированный прямоугольник. Но я до сих пор не знаю, как это сделать с помощью drawLine()
Могу ли я использовать drawPath
для проверки попаданий?
Вот код:
private bool selectGraph = false;
private Rectangle myrec = new Rectangle(50, 50, 100, 100);
private Graphics g;
private void panel1_Paint(object sender, PaintEventArgs e)
{
SolidBrush sb = new SolidBrush(Color.Blue);
Pen p = new Pen(Color.Blue, 5);
e.Graphics.DrawRectangle(p, myrec);
e.Graphics.FillRectangle(sb, myrec);
}
private void panel1_MouseUp(object sender, MouseEventArgs e)
{
Point mPT = new Point(e.X, e.Y);
if (e.Button == MouseButtons.Left)
{
if (myrec.Contains(mPT))
{
selectGraph = true;
button1.Enabled = true;
}
else
{
selectGraph = false;
button1.Enabled = false;
}
}
Invalidate();
}
g = panel1.CreateGraphics();
! Вы уже находитесь в обработчике событийPaint
. УPaintEventArgs
есть свойствоGraphics
, которое вы используете для рисования. Ваше приложение будет медленным и крайне глючным, если вы будете использовать текущий способ. :) - person TheCloudlessSky   schedule 31.08.2010