C#重绘OnPaint()事件调用机制
2023-09-11 14:21:58 时间
C#重绘OnPaint()事件调用机制
2017年11月03日 11:18:56 TOPZF 阅读数 5228更多
分类专栏: c#
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010690080/article/details/78433515
与绘制有关的函数
- Paint()
- OnPaint()
- Invalidate()
前两个函数的执行顺序,如果在OnPaint()中有base.OnPaint(e)函数,就相当于执行外部的Paint()函数。
Invalidate()运行后,会通知系统要重绘控件,但是不是立即重绘,而是运行完所有程序之后再重绘。
一个控件应该什么时候绘制主要有两个 :
- 一个是 系统来确定 这个控件需要绘制 比如 最小化后在最大化 那么此时 系统会发出WM_PAINT 消息来告知控件 你需要重绘了
- 另一个就是 人为的调用this.Invalidate()或者this.Invalidate(Rectangle)来自己触发一次重绘
[引用]
对于第一种 那是系统自身的一种行为 不管你是什么控件系统自带的还是自己写的 对于一些操作必然是要重绘界面的 比如最小化后 在最大化 控件隐藏后 在显示 得到焦点 失去焦点 之类的 这种是必然要重绘的
实例
- 目标:控件改动一个属性后希望重新绘制控件达到刷新的效果。
修改版半径后在设计器中显示出来:
public int Radius
{
get { return _radius; }
set
{
_radius = value;
this.Invalidate();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
选中后刷新显示:
public bool IsSelected
{
get { return this._isSelected; }
set
{
this._isSelected = value;
this.Invalidate();
}
}
相关文章
- C#执行异步操作的几种方式比较和总结
- 代码走查25条疑问 C# 跳转新的标签页 C#线程处理 .Net 特性 attribute 学习 ----自定义特性 看懂 ,学会 .NET 事件的正确姿势-简单版
- C#订阅与发布标准实现 visual studio code .net 开发 设计模式之☞策略模式 C#字符串转二进制、二进制转字符串 c# 接口的协变和逆变 c# 使用迭代器来创建可枚举类型 博客园首页新随笔联系订阅管理 随笔 - 117 文章 - 0 评论 - 57 c# 创建,加载,修改XML文档
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
- 如何使用T-SQL备份还原数据库及c#如何调用执行? C#中索引器的作用和实现。 jquery控制元素的隐藏和显示的几种方法。 localStorage、sessionStorage用法总结 在AspNetCore中扩展Log系列 - 介绍开源类库的使用(一) span<T>之高性能字符串操作实测
- C# 委托和事件,简单示例说明问题
- 请求大神,C#如何截取字符串中指定字符之间的部分 按指定字符串分割 一分为二 c# 去除字符串中的某个已知字符
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
- Webservice WCF WebApi 前端数据可视化 前端数据可视化 C# asp.net PhoneGap html5 C# Where 网站分布式开发简介 EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下? SQL Server之深入理解STUFF 你必须知道的EntityFramework 6.x和EntityFramework Cor
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- Word处理控件Aspose.Words功能演示:在 C# .NET 中将 Word 转换为 PDF - 完整指南
- C#【委托/事件篇】委托经典实例
- C#自定义ConfigSections节点操作
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
- C# 自定义事件
- 《C#零基础入门之百识百例》(七十七) 委托事件实例练习2 -- 刘备招亲甘露寺
- C# 集合交、并、差、去重,对象集合交并差
- C# static
- C# 事件
- C#-事件的理解以及自定义事件的方法