我是做图像的,作切割的时候需要在原图上用矩形框出一个范围,之后对框出的范围进行处理.
而我的图像是显示在PictureBox上的,
我现在遇到的问题就是如何在原图像也就是PictureBox上面画出矩形?
在Form上能够画出来,但是在控件上我实现不了.
希望有人能够帮我一下啊,谢谢了!
而我的图像是显示在PictureBox上的,
我现在遇到的问题就是如何在原图像也就是PictureBox上面画出矩形?
在Form上能够画出来,但是在控件上我实现不了.
希望有人能够帮我一下啊,谢谢了!
Graphics g = Graphics.FromHwnd(pictureBox.Handle).
g.drawRectangle(.....)
画出的矩形把我原图象给覆盖了啊
在mouseup之后,picturebox里就剩下矩形了,原图象没有了啊.
怎么能在我原图象上画呢?
现在的问题又是:
在背景上画矩形的时候,那个矩形不随着鼠标而放大,
只有当鼠标停止的时候,
那个矩形才显示,怎么能修改一下啊?
Invalidate();么?
mousedown
mousemove
mouseup
private void pictureBox1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
Point p = new Point(e.X, e.Y);
x= p.X;
y = p.Y;
cx = x - x0;
cy = y - y0;
if (drag)
{
Invalidate();
}
}
Graphics g = Graphics.FromImage(this.pictureBox1.Image);
看看这个
不一定非要在MouseMove里吧?
private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen pen = new Pen(Color.Blue);
if (drag)
{
g.DrawRectangle(pen, x0, y0, cx, cy);
} pen.Dispose();
}
在鼠标移动事件中调用pictureBox1.ReFrush();