日期:2014-05-17  浏览次数:20991 次

菜鸟求助,C# 画点画线问题
请教各位大神,我想在同一个picturebox上点击画点或画线按钮分别实现画点和画线。
目前我采用的是pictureBox_MouseClick中实现画点, pictureBox_MouseDown和pictureBox_MouseUp中实现画线。
单独实现画点或画线能实现了。但是放在一起出现了Click和MouseDown、MouseUp 的冲突,不知道该如何解决啊?

------解决方案--------------------
写了个简单的例子给你,你参考看看


public abstract class DrawObject
{
    public int Width { get; set; }
    public Color Color { get; set; }
    public float X { get; set; }
    public float Y { get; set; }

    public DrawObject()
    {
        Width = 1;
        Color = Color.Black;
    }
    public abstract void Render(Graphics g);
}

public class DrawDot : DrawObject
{
    public override void Render(Graphics g)
    {
        g.FillRectangle(new SolidBrush(Color), X, Y, Width, Width);
    }
}

public class DrawLine : DrawObject
{
    public Point StartPoint { get; set; }
    public Point EndPoint { get; set; }

    public override void Render(Graphics g)
    {
        g.DrawLine(new Pen(Color, Width), StartPoint, EndPoint);
    }
}


public abstract class DrawTool
{
    protected DrawCanvas canvas;
    public DrawTool(DrawCanvas canvas)
    {
        this.canvas = canvas;
    }

    public abstract void MouseMove(MouseEventArgs e);
    public abstract void MouseDown(MouseEventArgs e);
    public abstract void MouseUp(MouseEventArgs e);
}

public class DrawDotTool : DrawTool
{
    public DrawDotTool(DrawCanvas canvas)
        : base(canvas)