鼠标绘制图像的位置

时间:2013-11-17 01:58:57

标签: c# cursor panel draw point

这是我项目界面的代码,但是当我移动鼠标时我无法确定鼠标的位置!当我在屏幕上绘制图像时,它没有绘制正确的位置!

public partial class Form1 : Form
{
    int _countRouter = 0;
    Point[] _posiRouter = new Point[100];
    readonly Image _imgRouter = Image.FromFile(@"C:\Router2.png");
    public Form1()
    {
        InitializeComponent();
    }

    private void btnRouter_MouseUp(object sender, MouseEventArgs e)
    {
        //panelMain.Cursor = new Cursor(Cursor.Current.Handle);

        //Point x = Cursor.Position;
        Point x = new Point(e.X, e.Y);
        if ((x.X > 10 || x.X < 660) && (x.Y > 30 || x.Y < 350))
        {
            _posiRouter[_countRouter].X = x.X;// -_imgRouter.Width;
            _posiRouter[_countRouter].Y = x.Y;// -_imgRouter.Height;
            _countRouter++;
        }
        this.panelOption.Invalidate();
        this.panelMain.Invalidate();
    }

    private void panelMain_Paint(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        g.FillRectangle(Brushes.White,  
                        new Rectangle ( 0, 0, this.ClientRectangle.Width , 
                                        this.ClientRectangle.Height));

        for (int x = 0; x < _countRouter; x++)
        {
            g.DrawImage(_imgRouter, _posiRouter[x]);

        }
    }
// ... ?
}

1 个答案:

答案 0 :(得分:0)

来自MSDN

  

鼠标坐标因所引发的事件而异。例如,处理Control.MouseMove事件时,鼠标坐标值相对于引发事件的控件的坐标。与拖放操作相关的某些事件具有相对于表单原点或屏幕原点的相关鼠标坐标值。

看看那里,试着通过调试点Point x = new Point(e.X, e.Y);找出你得到的东西来弄清楚你的鼠标是什么/在哪里。