鼠标事件返回坏坐标?

时间:2014-12-09 20:53:23

标签: c# winforms

在我的应用程序中,我使用鼠标按下鼠标按钮事件来获取指针的坐标,使用它们我正在绘制一个矩形。但我有一个问题,右上角移动约5px和5 px离开我放下鼠标事件的地方。 我没有更多的想法,为什么它不起作用。

这是我正在使用的代码。

private void sourceBox_MouseDown(object sender, MouseEventArgs e)
    {
        if (sourceBox.Image != null && enableMR)
        {
            X1 = e.X;
            Y1 = e.Y;
        }
    }
private void sourceBox_MouseUp(object sender, MouseEventArgs e) 
    {
        if (sourceBox.Image != null && enableMR)
        {
            SampleRbutton.Enabled = true;
            Bitmap temp = new Bitmap(sourceBox.Image);
            float scalex = (float)temp.Width / sourceBox.Width;
            float scaley = (float)temp.Height / sourceBox.Height;
            Graphics g = Graphics.FromImage(temp);
            Pen p = new Pen(Color.Red,5f);
            actselectionF = new RectangleF(Math.Min(X1, e.X) * scalex, Math.Min(Y1, e.Y) * scaley, Math.Abs((e.X - X1) * scalex), Math.Abs((e.Y - Y1) * scaley));
            sampleBox.Image = copyselection(actselectionF, temp);
            g.DrawRectangle(p, Math.Min(X1, e.X) * scalex, Math.Min(Y1, e.Y) * scaley, Math.Abs((e.X - X1) * scalex), Math.Abs((e.Y - Y1) * scaley));            
            sourceBox.Image = temp;
            c.Flush();
            o.State = (Bitmap)sampleBox.Image;
            c.PushCurrentState(o.CreateMemento());
            enableMR = false;
            SampleRbutton.Checked = true;
            hsaitextBox.Text = sampleBox.Image.Height.ToString();
            wsaitextBox.Text = sampleBox.Image.Width.ToString();
            g.Dispose();
            p.Dispose();
        }
    }

这里你有我正在谈论的问题。

0 个答案:

没有答案