WinForm下PictureBox和Panel控件的On_Paint事件有何区别

     昨天一个WindowForm项目需要画图,随手拖了一个PictureBox控件上来,实现了On_paint事件后,图画的倒是不错,但总是不能很好的重画,总感觉是重画完成后又被刷新了,试了N次都不行。

     实在搞不定就换了个Panel控件来画,没想到确非常完美。问题解决了,我也不想去深究到底是什么原因,在此留个纪念!

     在此给别人也提个醒。

转载于:https://www.cnblogs.com/81/archive/2010/06/17/1759596.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,如果你想在WinForms中使用PictureBox控件来实现图像的放缩和ROI绘制,可以参考以下步骤: 1. 放缩 要实现放缩,可以使用PictureBox的SizeMode属性。将SizeMode设置为Zoom,就可以让图像按比例缩放以适应控件的大小。代码示例如下: ```csharp pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; ``` 2. ROI绘制 要实现ROI绘制,可以在PictureBoxPaint事件中绘制矩形。首先,你需要定义一个Rectangle变量来存储矩形的位置和大小。然后,在Paint事件中使用Graphics对象绘制矩形。代码示例如下: ```csharp private Rectangle roiRect; private void pictureBox1_Paint(object sender, PaintEventArgs e) { if (roiRect != null) { e.Graphics.DrawRectangle(Pens.Red, roiRect); } } ``` 在绘制矩形之前,你需要设置pictureBox1的MouseUp和MouseDown事件,以便在用户单击并拖动鼠标时记录矩形的位置和大小。代码示例如下: ```csharp private Point startPoint; private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { startPoint = e.Location; } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { int width = Math.Abs(e.X - startPoint.X); int height = Math.Abs(e.Y - startPoint.Y); int x = Math.Min(startPoint.X, e.X); int y = Math.Min(startPoint.Y, e.Y); roiRect = new Rectangle(x, y, width, height); pictureBox1.Invalidate(); // 重绘pictureBox1 } ``` 以上就是实现PictureBox控件的放缩和ROI绘制的基本步骤。希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值