+ -
当前位置:首页 → 问答吧 → VB中关于ClipControls属性的不解

VB中关于ClipControls属性的不解

时间:2011-12-14

来源:互联网

VB中有关ClipControls属性,有一句不理解:
注意:应避免把 ClipControls 为 True 的控件嵌入到 ClipControls 为 False 的控件中。这样做会导致嵌入控件不能正确重画。
这句话,什么意思?把 ClipControls 为 True 的控件嵌入到 ClipControls 为 False 的控件中究竟能产生什么具体后果呢?最好举例说明。谢谢。

作者: shanjiapeipei   发布时间: 2011-12-14

ClipControls 属性
   

返回或设置一个值,决定 Paint 事件中的图形方法是重绘整个对象,还是只绘刚刚露出的区域。它还决定 Microsoft Windows 运行环境是否创建一个不包括该对象的非图形控件的剪裁区。在运行时为只读。

语法

object.ClipControls

ClipControls 有下列组成部分:

部分 描述 
object 对象表达式,其值是“应用于”列表中的一个对象。 
Boolean 布尔表达式,指定如何重绘对象,“设置值”中有详细描述,。 


设置值

boolean 的设置值如下:

设置值 描述 
True (缺省值)Paint 事件中的图形方法重绘整个对象。在绘制之前,在该窗体中非图形控件的周围创建剪裁区。 
False Paint 事件中的图形方法只绘制刚刚露出的区域。在绘制之前,不在该窗体非图形控件的周围创建剪裁区。 ClipControls 设置为 False 时,加载和重绘复杂窗体比较快。 


说明

剪裁是确定当显示窗体时,对诸如 Frame 或 PictureBox 控件的窗体或容器的哪一部分进行重绘。在内存中建立窗体和控件的大纲。Windows 运行环境利用这个大纲来重画某些部分,诸如背景色,而不会影响其它部分,例如 TextBox 控件的内容。因为剪裁区建立在内存中,所以将该属性设置为 False可以减少绘制或重绘窗体所需的时间。

剪裁区包括大部分控件,但是不在 Image、Label、Line 或 Shape 控件的周围剪裁。

避免将 ClipControls 设置为 True 的固有控件,嵌套在 ClipControls 属性设置为 False 的控件内(例如:命令按钮在图片框内)。这种控件嵌套引起控件不能准确重绘。为解决这个问题,将容器控件和嵌套的控件的 ClipControls 属性设置为 True。

作者: Veron_04   发布时间: 2011-12-14