Я хочу создать приложение, которое пользователь сможет манипулировать строкой, которую он рисует. Что-то вроде удаления строки или ее выбора. Как мне это сделать?Как нарисовать выделенную строку?
Заранее спасибо
мне удалось сделать это с помощью жесткого закодированного прямоугольника. Но у меня еще нет идеи, как это сделать, используя 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();
}
Crap - это инструмент для визуальных инструментов. – Rye
Пожалуйста, о, пожалуйста, избавитесь от этой 'g = panel1.CreateGraphics();' line! Вы уже находитесь в ролике «Paint». «PaintEventArgs» имеет свойство «Graphics», которое вы используете для рисования. Ваше приложение будет медленным и крайне искаженным, если вы используете свой текущий способ. :) – TheCloudlessSky
@TheClodlessSky Да, я уже удалил такой подход! Я новичок в GDI, поэтому LOL. Спасибо TCS :) – Rye