社区
C#
帖子详情
picturebox界面paint消息的咨询,高手进,在线等
qiuxin425
2010-10-25 09:06:15
我在picturebox里面的paint消息中画了一些线段,想鼠标可以点击线段进行移动,现在的做法是点击后对整个的
picturebox.Invalidate();当线段比较多时有点不理想。
询问能否对某个特定区域进行重绘,例如里面有个矩形,移动它时只对他的区域重绘,谢谢!
在线等,最好有代码,分数可以提高!
...全文
107
12
打赏
收藏
picturebox界面paint消息的咨询,高手进,在线等
我在picturebox里面的paint消息中画了一些线段,想鼠标可以点击线段进行移动,现在的做法是点击后对整个的 picturebox.Invalidate();当线段比较多时有点不理想。 询问能否对某个特定区域进行重绘,例如里面有个矩形,移动它时只对他的区域重绘,谢谢! 在线等,最好有代码,分数可以提高!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
难道只能全部重绘么
产业园区运营负责人如何通过产业大脑实现对入园企业的精准服务与高效管理?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
Nuclei-RISC-V-ISA-Spec.pdf
Nuclei-RISC-V-ISA-Spec.pdf
国央企创新负责人如何通过区域科技创新大脑支持产业链协同与创新资源整合?.docx
国央企创新负责人如何通过区域科技创新大脑支持产业链协同与创新资源整合?
【Python编程】Python装饰器模式与元编程技术
内容概要:本文全面阐述Python装饰器的实现原理与高级应用,重点对比函数装饰器、类装饰器、参数化装饰器的语法结构与执行时机差异。文章从闭包与作用域规则出发,深入分析functools.wraps对元信息的保留、装饰器叠加顺序的影响、以及__get__描述符协议在方法装饰中的绑定机制。通过代码示例展示lru_cache缓存装饰器、property属性装饰器、classmethod/staticmethod的实现原理,同时介绍类装饰器在ORM字段注册、API路由映射中的应用,以及元类在框架开发中的类创建拦截,最后给出在权限校验、日志埋点、性能监控等场景下的装饰器设计原则与可维护性建议。 24直播网:wap.whjzgb.cn 直播下载:www.whfwy.com 24直播网:www.whlhjt.com 直播下载:www.whyiqiao.com 直播下载:wap.whxuebao.com
【人工智能平台】PlatforMax单机版安装指南:基于Ubuntu系统的AI开发环境部署与GPU驱动配置
内容概要:本文档详细介绍了PlatforMax单机版5.0.1-rc6版本的完整安装流程,涵盖硬件、操作系统、硬盘、网络等前置环境要求,并提供了Ubuntu 20.04.3 Desktop与Server两种系统的安装步骤。重点强调系统需全新安装、禁用自动更新、正确设置磁盘分区以充分利用全部空间,以及创建指定用户名“amax”。随后指导用户通过运行离线安装包完成PlatforMax的部署,包括校验、解压、输入安装码、驱动与Docker配置等环节。安装完成后需通过浏览器访问初始化页面完成最终配置。文档还列举了常见问题及应对措施,特别是NVIDIA驱动不兼容时的处理方式,允许用户手动提供驱动或跳过安装以确保主程序顺利部署。; 适合人群:具备Linux系统操作基础,从事AI平台运维、系统集成或技术支持的相关技术人员,尤其适用于负责本地化部署高性能计算平台的工程师。; 使用场景及目标:①为满足AI训练与推理需求的企业级用户提供PlatforMax平台的本地单机部署方案;②指导技术人员完成从系统准备到平台上线的全流程安装,确保环境合规、数据安全和系统稳定运行;③解决新GPU驱动兼容性等问题,保障平台可扩展性和实用性。; 阅读建议:在实际操作前通读全文,重点关注硬件配置、磁盘管理、用户命名规则及驱动处理策略,建议在测试环境中先行演练,避免因误操作导致数据丢失或安装失败。
C#
111,129
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章