【问题标题】:How to draw a rectangle in WinForm app in the correct location如何在 WinForm 应用程序中的正确位置绘制矩形
【发布时间】:2010-03-25 15:42:06
【问题描述】:

我有一个 WinForm 应用程序,该应用程序具有显示在 PictureBox 中的图像,该应用程序具有允许用户通过单击和拖动在图像上绘制矩形的附加功能。 矩形的位置、高度和宽度保存到磁盘。

当再次查看图像时,我想在图像上的相同位置自动重绘该矩形。

但是,当我重绘它时,高度和宽度都很好,但位置总是关闭。

在 MouseDown 事件中捕获位置,就像这样

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 的位置,我如何计算正确的位置来重绘我的矩形?

【问题讨论】:

    标签: winforms drawing


    【解决方案1】:

    您捕获的鼠标单击点可能与表单相关,而不是图片框。您需要确保正确捕获坐标或偏移它们。

    您能否以屏幕截图为例?

    【讨论】:

      猜你喜欢
      • 2013-03-02
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2022-01-15
      • 2011-08-25
      相关资源
      最近更新 更多