問題緣由:
鼠標座標參照PicBox,可是像素座標參照圖片自己,由於圖片長寬與picBox不能徹底對應,設置的時候將圖片居中顯示,因此實際上圖片是超出了控件的範圍的。這時加入鼠標取到的座標是(x,y),那麼像素座標是(x1,y1),其其中x1>=x,y1>=y。這時將像素座標以(x,y)進行處理,因此出現錯位
c#
解決辦法是: spa
對圖片座標與控件座標進行轉換,將控件座標轉換爲圖片座標便可。 code
轉換代碼演示:
orm
/************************************************************************/ /* 控件座標與圖像座標轉換 */ /************************************************************************/ private Point CoordinationTransformation(Point p){ int l = (bitmap.Width - pictureBox1.Width) / 2; int h = (bitmap.Height - pictureBox1.Height) / 2; p = new Point(p.X+l,p.Y+h); return p; }