【发布时间】:2017-10-30 14:08:34
【问题描述】:
我正在尝试制作一个具有三个按钮(矩形、圆形和线条)的 minipaint 应用程序。我在使用鼠标选择和移动形状时遇到问题。例如,我有这个矩形类,它从形状继承颜色、厚度:
class rectangle : shape
{
public int length { get; set; }
public int width { get; set; }
public override void Draw(Graphics g)
{
g.DrawRectangle(new Pen(color), new Rectangle(startx, starty, width,length));
}
}
现在,当我单击矩形的任何部分时,我希望 panel1_MouseDown 在我的面板中选择一个矩形。 所有绘制的形状都被添加到一个名为 lstShapsOnForm 的列表中,而 drawable 是一个抽象类,具有 draw 的抽象方法和属性 x y。
abstract class Drawable
{
public int x { get; set; }
public int y { get; set; }
public abstract void draw(Graphics g);
}
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
foreach (Drawable o in lstShapsOnForm)
{
if (e.Location.X >= o.x || e.Location.X < o.x)
propertyGrid1.SelectedObject = o;
}
}
我应该如何进行这项工作?
【问题讨论】:
标签: c# winforms mouseevent draw shape