当前位置: 首页 > news >正文

WINFORM TableLayout控件双缓冲防止闪烁

1. 修改DoubleBuffered属性
如果在tableLayout控件中加入太多子控件,那么更新数据时会出现闪烁在所难免。通过开启二级缓冲可以有效解决这个问题:
利用反射机制修改TableLayoutPanel的Protected的DoubleBuffered属性
 
tableLayout.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
 
另外,TCP/UDP群里的朋友说ListView也可以采用这个方式避免快速重新绑定数据时产生的闪烁。同理DataGridView应该也可以。

2. 属性不可被直接访问的修饰符或方法
这是一个引申问题,可以看出DoubleBuffered属性无法直接通过对象获取,而是通过反射机制获取的。
那么自己开发过程中如何实现这种属性的定义呢?

3. 通过SetStyle方法设置双缓冲
public void EnableDoubleBuffering()
{
   // Set the value of the double-buffering style bits to true.
   this.SetStyle(ControlStyles.DoubleBuffer |
      ControlStyles.UserPaint |
      ControlStyles.AllPaintingInWmPaint,
      true);
   this.UpdateStyles();
}
内部链接

转载于:https://www.cnblogs.com/sunlyk/p/7477024.html

相关文章:

  • Session详解
  • javaAPI1
  • 77 最长公共子序列 (lintcode)
  • struts spring hibernate 三大框架实现基本的增删改查技术
  • 写代码的一些常识
  • warning: assignment from incompatible pointer type [enabled by default]
  • 剑指offer 数字在排序数组中出现的次数
  • 打造vim IDE
  • linux挂载远程windows服务器上的ISO,给内网的服务器安装软件
  • 开源的API集成测试工具 v0.1.2 - 增强体验
  • ActiveMQ笔记——技术点汇总
  • 第三百八十二节,Django+Xadmin打造上线标准的在线教育平台—xadmin管理员详情页面布局,导航图标设置...
  • POJ 3134 - Power Calculus
  • hdu 6201 transaction transaction transaction
  • java的(PO,VO,TO,BO,DAO,POJO)解释
  • 【译】JS基础算法脚本:字符串结尾
  • $translatePartialLoader加载失败及解决方式
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Nodejs和JavaWeb协助开发
  • react 代码优化(一) ——事件处理
  • STAR法则
  • 从tcpdump抓包看TCP/IP协议
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 记一次用 NodeJs 实现模拟登录的思路
  • 解析带emoji和链接的聊天系统消息
  • 聊聊directory traversal attack
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 前端技术周刊 2019-01-14:客户端存储
  • 使用SAX解析XML
  • 提醒我喝水chrome插件开发指南
  • 因为阿里,他们成了“杭漂”
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • Spring Batch JSON 支持
  • 阿里云服务器如何修改远程端口?
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (1)(1.13) SiK无线电高级配置(六)
  • (1)Nginx简介和安装教程
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (二)PySpark3:SparkSQL编程
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • (状压dp)uva 10817 Headmaster's Headache
  • .form文件_SSM框架文件上传篇
  • .NET Core中的去虚
  • .NET面试题(二)
  • .NET委托:一个关于C#的睡前故事
  • .NET中统一的存储过程调用方法(收藏)