在我的应用程序中,我使用鼠标按下鼠标按钮事件来获取指针的坐标,使用它们我正在绘制一个矩形。但我有一个问题,右上角移动约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();
}
}
这里你有我正在谈论的问题。