许多 Windows 窗体控件(例如,ListView 和 TreeView 控件)实现了 BeginUpdate 和EndUpdate 方法,它们在操纵基础数据或控件属性时取消了控件的重新绘制。通过使用BeginUpdate 和 EndUpdate 方法,您可以对控件进行重大更改,并且避免在应用这些更改时让控件经常重新绘制自身。此类重新绘制会导致性能显著降低,并且用户界面闪烁且不反应。例如,如果您的应用程序具有一个要求添加大量节点项的树控件,则您应该调用 BeginUpdate,添加所有必需的节点项,然后调用 EndUpdate。下面的代码示例显示了一个树控件,该控件用于显示许多个客户的层次结构表示形式及其定单信息。
  [C#]
  // Suppress repainting the TreeView until all the objects have been created.
  TreeView1.BeginUpdate();
  // Clear the TreeView.
  TreeView1.Nodes.Clear();
  // Add a root TreeNode for each Customer object in the ArrayList.
  foreach( Customer customer2 in customerArray )
  {
  TreeView1.Nodes.Add( new TreeNode( customer2.CustomerName ) );
  // Add a child TreeNode for each Order object in the current Customer.
  foreach( Order order1 in customer2.CustomerOrders )
  {
  TreeView1.Nodes[ customerArray.IndexOf(customer2) ].Nodes.Add(
  new TreeNode( customer2.CustomerName + "." + order1.OrderID ) );
  }
  }
  // Begin repainting the TreeView.
  TreeView1.EndUpdate();
  [Visual Basic .NET]
  ' Suppress repainting the TreeView until all the objects have been
  created.
  TreeView1.BeginUpdate()
  ' Clear the TreeView
  TreeView1.Nodes.Clear()
  ' Add a root TreeNode for each Customer object in the ArrayList
  For Each customer2 As Customer In customerArray
  TreeView1.Nodes.Add(New TreeNode(customer2.CustomerName))
  ' Add a child TreeNode for each Order object in the current Customer.
  For Each order1 As Order In customer2.CustomerOrders
  TreeView1.Nodes(Array.IndexOf(customerArray, customer2)).Nodes.Add( _
  New TreeNode(customer2.CustomerName & "." & order1.OrderID))
  Next
  Next
  ' Begin repainting the TreeView.
  TreeView1.EndUpdate()
  即使在您不希望向控件添加许多对象时,您也应该使用 BeginUpdate 和 EndUpdate 方法。在大多数情况下,您在运行之前将不知道要添加的项的确切个数。因此,为了妥善处理大量数据以及应付将来的要求,您应该总是调用 BeginUpdate 和 EndUpdate 方法。注调用 Windows 窗体控件使用的许多 Collection 类的 AddRange 方法时,将自动为您调用 BeginUpdate 和 EndUpdate 方法。

Delphi中BeginUpdate和EndUpdate作用相关推荐

  1. ListView的BeginUpdate()和EndUpdate()作用

    许多Windows 窗体控件(例如,ListView 和 TreeView 控件)实现了 BeginUpdate 和EndUpdate 方法,至于为何要这样用简单说明一下. 当我们向一个Listvie ...

  2. C++中的NULL与DELPHI中的nil作用相同

    C++中的NULL与DELPHI中的nil作用相同,表示对象为空.而DELPHI中的NULL仅是代表一个空字符串而已.

  3. Delphi中的容器类(二)

    TStrings类 出于效率的考虑,Delphi并没有象C++和Java那样将字符串定义为类,因此TList本身不能直接存储字符串,而字符串列表又是使用非常广泛的,为此Borland提供了TStrin ...

  4. Delphi中的容器类

    Delphi中的容器类 Posted on 2008-11-15 11:30 YangHe 阅读(122) 评论(0) 编辑 收藏 从Delphi 5开始VCL中增加了一个新的Contnrs单元,单元 ...

  5. Delphi中的容器类(3)

    TBucketList和TObjectBucketList类 从Delphi6开始,VCL的Contnrs单元中又增加了两个新的容器类TBucketList和TObjectBucketList.TBu ...

  6. DELPHI 中 Window 消息大全使用详解

    Window 消息大全使用详解 导读: Delphi是Borland公司的一种面向对象的可视化软件开发工具. Delphi集中了Visual C++和Visual Basic两者的优点:容易上手.功能 ...

  7. 关于delphi中的register, pascal, cdecl, stdcall, safecall

    最近用delphi写了个软件.所以特此也转篇文章,以留作记录吧. 1...http://blog.csdn.net/yfy_47/article/details/6572374 注: 使用错误,或者在 ...

  8. Delphi中静态方法重载还是覆盖的讨论

    Delphi中静态方法重载还是覆盖的讨论 新人学习Delphi的时候,容易搞不懂的一个问题,当子类方法和基类方法同名,并且参数也一样的时候,叫做什么呢?是覆盖,还是重载呢? 答案是隐藏父类方法. 一般 ...

  9. 教程-Delphi中Spcomm使用属性及用法详解

    Delphi中Spcomm使用属性及用法详解 Delphi是一种具有 功能强大.简便易用和代码执行速度快等优点的可视化快速应用开发工具,它在构架企业信息系统方面发挥着越来越重要的作用,许多程序员愿意选 ...

最新文章

  1. 实现nginx上配置免费证书Let's Encrypt
  2. 【高并发】32位多核CPU并发读写long型数据为何会出现诡异问题?看完这篇我懂了!...
  3. 沈阳初步建成国内领先的城市级大数据资源库
  4. Jersey Restful部署到Tomcat注意事项
  5. JAVA循环与分支语句edu_Java分支结构和循环结构原理与用法详解
  6. update yum 到指定版本_CentOS 使用yum update 更新时保留特定版本的软件
  7. 实现在线用户列表的简单方法
  8. 指令集物联网操作系统 iSysCore OS 2021年将推出 3.0 版本!
  9. 如何使用mysql建立项目_【dbForge Studio for MySQL入门教程】如何在项目中使用数据库对象和如何使用项目构建配置...
  10. outlook 附件保存位置-附件无法打开
  11. Linux 命令行提示符路径显示
  12. python设计选择题代码源_Python程序的设计试题库完整
  13. Web Worker API
  14. 谷歌浏览器没有添加flash选项
  15. 如何选购电风扇,一本电风扇选购攻略都在这里!
  16. 【vue】基于element UI周控件实现的单选周和多选周
  17. 机器学习学习笔记之——处理文本数据
  18. 程序员的小情诗,记录我们爱的轨迹
  19. 计算机硬盘里没有内容却显示有,为什么电脑磁盘里头明明没有东西,也没隐藏文件,却显示用了12个G。求解!...
  20. [Eigen中文文档] 切片和索引

热门文章

  1. oracle根据关键字搜索存储过程
  2. 浅识Flutter 基本组件之showDatePicker方法
  3. Mac升级python3版本
  4. thinkPHP+jQuery实现站内信功能-讲给菜鸟同学
  5. 余弦距离的应用 -- cosine distance
  6. Cosine Similarity(余弦相似度)
  7. linux 文件追加,如何在Linux中将文本内容追加到文件末尾?
  8. 9月20-21日,十位阿里技术大牛带你玩转大流量与高并发
  9. 【关于四足机器人那些事】足端轨迹规划-八次多项式轨迹
  10. Excel单斜线表头的绘制方法