picturebox界面paint消息的咨询,高手进,在线等

qiuxin425 2010-10-25 09:06:15
我在picturebox里面的paint消息中画了一些线段,想鼠标可以点击线段进行移动,现在的做法是点击后对整个的
picturebox.Invalidate();当线段比较多时有点不理想。
询问能否对某个特定区域进行重绘,例如里面有个矩形,移动它时只对他的区域重绘,谢谢!

在线等,最好有代码,分数可以提高!
...全文
108 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuxin425 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lorenliu 的回复:]

可以参考http://topic.csdn.net/u/20091023/15/420d20ce-af7d-461a-9033-f2a4a3323757.html
那里我用的是图片,你也可以定义线段对象来做同样的事情
[/Quote]

牛人 太有才了
LorenLiu 2010-10-25
  • 打赏
  • 举报
回复
可以参考http://topic.csdn.net/u/20091023/15/420d20ce-af7d-461a-9033-f2a4a3323757.html
那里我用的是图片,你也可以定义线段对象来做同样的事情
qiuxin425 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 haveonedream 的回复:]

双缓冲

public frm_Main()
{
InitializeComponent();
this.DoubleBuffered = true;
SetStyle(ControlStyles.UserPaint, true);
……
[/Quote]
谢谢!
HaveOneDream 2010-10-25
  • 打赏
  • 举报
回复
双缓冲

public frm_Main()
{
InitializeComponent();
this.DoubleBuffered = true;
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
SetStyle(ControlStyles.OptimizedDoubleBuffer, true); // 双缓冲

}

protected override void OnPaint(PaintEventArgs e)
{
Rectangle rect = e.ClipRectangle;
BufferedGraphicsContext currentContext = new BufferedGraphicsContext();
BufferedGraphics myBuffer = currentContext.Allocate(e.Graphics, e.ClipRectangle);
Graphics g = myBuffer.Graphics;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighSpeed;
//绘制背景图片
g.DrawImage(namespace.Properties.Resources.back, 0, 0, rect.Width, rect.Height);
//当前时间
Brush b = new SolidBrush(Color.White);
Font font = new Font("宋体", 15f / 1024 * this.Width, FontStyle.Regular);
g.DrawString(DateTime.Now.ToString("HH:mm:ss"), font, b, 185f / 1024 * this.Width, 20f / 768 * this.Height);

myBuffer.Render(e.Graphics);
g.Dispose();
myBuffer.Dispose();//释放资源
}
wei322x 2010-10-25
  • 打赏
  • 举报
回复
C#.net,Javascript,AJAX,SilverLight,HTML5,CSS3,WPF,WCF,Win Phone技术交流群118907238
qiuxin425 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 haveonedream 的回复:]

this.Invalidate(new Rectangle(0, 0,100,100);
矩形区域重绘
[/Quote]

刚试了一下,这个方法可行,多谢

再等等,看看还有没有高手
qiuxin425 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lrh_079 的回复:]

使用双缓冲看效果是否会好点
[/Quote]

怎么做呢?
lrh_079 2010-10-25
  • 打赏
  • 举报
回复
使用双缓冲看效果是否会好点
qiuxin425 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 haveonedream 的回复:]

this.Invalidate(new Rectangle(0, 0,100,100);
矩形区域重绘
[/Quote]

是一个不错的想法,但有个问题,如果这个矩形区域里面有文本的画,我拉动它的边缘进行移动,例如往下,应该就没有达到重绘吧。
HaveOneDream 2010-10-25
  • 打赏
  • 举报
回复
this.Invalidate(new Rectangle(0, 0,100,100);
矩形区域重绘
qiuxin425 2010-10-25
  • 打赏
  • 举报
回复
难道只能全部重绘么
这个是完整源码 java实现 大数据 Spark 可视化大屏+Kafka+SpringBoot+Vue3 【大数据毕业设计】基于Spark实时社交媒体舆情分析与趋势预测(Java版本+可视化大屏+Kafka+SpringBoot+Vue3) 源码+论文 完整版 数据库Mysql 随着微博、抖音、知乎、小红书等社交媒体平台的快速发展,网络舆情呈现出数据规模大、传播速度快、情绪演化复杂等特点。传统离线批处理方式难以满足舆情监测对时效性的要求,亟需构建一套能够支撑实时采集、流式计算、情感分析与趋势预测的综合系统。本文围绕“基于Spark实时社交媒体舆情分析与趋势预测”课题,设计并实现了一套前后端分离的舆情分析平台。系统后端采用Java语言与Spring Boot框架构建RESTful服务,结合JWT完成管理员身份认证与权限控制;数据处理层引入Spark思想的流式窗口统计与Kafka消息缓冲机制,对社交媒体帖文行情感倾向识别、热度指数计算和按小时窗口聚合;趋势预测模块基于历史热度序列构建多元线性回归模型,输出未来窗口的热度预测值,并采用RMSE、MAE、MAPE等指标评价预测效果;前端采用Vue3、Vue Router、Pinia、Element Plus与ECharts实现管理后台与数据可视化大屏,支持帖文管理、话题管理、实时舆情查看、趋势对比和个人中心维护等功能。数据库选用MySQL,库名为db_social_opinion,核心业务表均以t_前缀命名,覆盖管理员、用户、平台、话题、帖文、实时统计、预测结果与误差指标等实体。测试结果表明,系统能够稳定完成舆情事件模拟、实时统计刷新与趋势预测展示,界面日期时间统一采用“2026-11-02 17:25:17”格式,满足本科毕业设计对完整性、规范性与可演示性的要求。本文工作对高校舆情教学实验、中小规模舆情监测系统原型开发具有一定

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧