Winforms 如何在WinForm应用程序中的正确位置绘制矩形
我有一个WinForm应用程序,它在一个PictureBox中显示了一个图像,它还增加了允许用户通过单击和拖动在图像上绘制一个矩形的功能。 矩形的位置、高度和宽度保存到磁盘 当再次查看图像时,我想在图像的相同位置自动重新绘制该矩形 但是,当我重新绘制它时,高度和宽度都很好,但位置始终处于关闭状态 正在MouseDown事件中捕获该位置,如下所示Winforms 如何在WinForm应用程序中的正确位置绘制矩形,winforms,drawing,Winforms,Drawing,我有一个WinForm应用程序,它在一个PictureBox中显示了一个图像,它还增加了允许用户通过单击和拖动在图像上绘制一个矩形的功能。 矩形的位置、高度和宽度保存到磁盘 当再次查看图像时,我想在图像的相同位置自动重新绘制该矩形 但是,当我重新绘制它时,高度和宽度都很好,但位置始终处于关闭状态 正在MouseDown事件中捕获该位置,如下所示 private void pbSample_MouseDown(object Sender, MouseEventArgs e) {
private void pbSample_MouseDown(object Sender, MouseEventArgs e)
{
if (SelectMode)
{
StartLocation.X = e.X;
StartLocation.Y = e.Y;
//later on these are saved as the location of the rectangle
}
}
我正在这样重新画
public void DrawSelectedArea(Rectangle rect)
{
Graphics g = this.pbSample.CreateGraphics();
Pen p = new Pen(Brushes.Black);
g.DrawRectangle(p, rect);
}
给定在MouseDown事件中捕获的MouseEventArgs的位置,如何计算重新绘制矩形的正确位置?您捕获的鼠标单击点可能与窗体相关,而不是与图片框相关。您要么需要确保正确捕获坐标,要么将坐标偏移 你能举个截图作为例子吗