【发布时间】:2011-04-05 13:17:40
【问题描述】:
我想创建一个用户能够操纵他画的线的应用程序。像删除线或选择它。我该怎么做?
提前致谢
我设法使用硬编码矩形来做到这一点。但是我仍然不知道如何使用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();
}
【问题讨论】:
-
废话有一个visualbasic powerpack工具。
-
拜托,噢拜托,摆脱
g = panel1.CreateGraphics();这一行!您已经在Paint事件处理程序中。PaintEventArgs有一个名为Graphics的属性,您可以使用它来绘制。如果您使用当前的方式,您的应用程序将会很慢并且非常有问题。 :) -
@TheClodlessSky 是的,我已经消除了这种方法!我对 GDI 有点陌生,这就是为什么大声笑。谢谢 TCS :)