【问题标题】:mouse position (Cursor.Position)鼠标位置(Cursor.Position)
【发布时间】:2015-02-17 05:42:35
【问题描述】:

我有图像 10*10 将其乘以因子并将图像加载到图片框当我在图像上的任何地方单击时选择鼠标位置时遇到问题左上角显示的点是什么错误?

【问题讨论】:

  • 您是否尝试过在以下PointToClient(Cursor.Position) stackoverflow.com/questions/8201286/… 上进行谷歌搜索,而且我认为您会希望在鼠标点击事件和图像点击事件上执行此操作
  • 我正在使用pictureBox点击事件(pb1_Click)
  • 我们改用MouseClick 事件。它的参数有坐标(相对于PB.ClientSize
  • @TaW 我正在使用 MouseClick 但同样的问题!

标签: c# image mouseevent picturebox pixels


【解决方案1】:

要绘制到Image缩放 Image,这对我来说很好:

float zoom = 7.5f;

public Form1()
{
    InitializeComponent();
    pb1.SizeMode = PictureBoxSizeMode.Zoom;
    pb1.ClientSize = new Size((int) (pb1.Image.Size.Width  * zoom), 
                              (int) (pb1.Image.Size.Height * zoom) );
}



private void pb1_MouseClick(object sender, MouseEventArgs e)
{
   int x = (int)Math.Round(e.X / zoom) ;
   int y = (int)Math.Round(e.Y / zoom) ;
   Bitmap bmp = (Bitmap) pb1.Image;
   bmp.SetPixel(x, y, Color.Red);
   pb1.Refresh();
}

注意:如果PictureBox 位于AutoScroll Panel 中,这同样适用。

【讨论】:

  • 感谢回答,如果你能看到我的更新,我有这个错误 NullReferenceexception...
  • 你从哪里得到异常?该代码假定 pb1.Image 已加载(从一开始)。我没有看到 zoom 变量,但它不会抛出异常而是编译器错误..
  • 缩放变量我在我的代码中使用它,但这里没有:(但同样的错误 NullReferenceexception....
  • 在哪里?????????注意:您只能在设置Image 之后设置pb1.ClientSize! (还要注意改进的计算!)
  • 这里和错误相同 pb1.ClientSize = new Size((int) (pb1.Image.Size.Width * zoom), (int) (pb1.Image.Size.Height * zoom) ) ; ,我正在处理有问题的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多