Line 类
Line是无窗口轻量级控件,在其容器上从一个点到另一个点绘制单一直线段。它纯粹用于视觉呈现——分隔窗体区域、为标题加下划线、绘制注释引导线——没有自身的交互元素:没有鼠标事件、没有焦点、没有标题。
Line通过其两个端点X1 / Y1和X2 / Y2定位,而非Left / Top / Width / Height矩形。默认属性为Visible,默认事件为Initialize。
Private Sub Form_Load()
linUnderHeading.X1 = 120 : linUnderHeading.Y1 = 320
linUnderHeading.X2 = 4800 : linUnderHeading.Y2 = 320
linUnderHeading.BorderColor = vbBlue
linUnderHeading.BorderWidth = 2
End Sub端点
X1 / Y1是直线的一个端点;X2 / Y2是另一个端点。坐标以容器的ScaleMode单位(默认为缇)表示,从容器的客户区左上角测量。直线在两点之间绘制,无论哪个点"在前"——交换端点不改变结果。
控件没有自身的Width或Height;边界矩形由两个端点派生。在设计时调整Line大小会移动被拖动的端点。
画笔
直线使用Win32 GDI画笔绘制,其外观由以下属性控制:
- BorderColor——画笔颜色(默认为系统窗口文本颜色)。
- BorderWidth——画笔宽度,以像素为单位(默认
1)。 - BorderStyle——画笔模式,作为BorderStyleConstants的成员:vbTransparent (0)、vbBSSolid (1, 默认)、vbBSDash (2)、vbBSDot (3)、vbBSDashDot (4)、vbBSDashDotDot (5)或vbBSInsideSolid (6)。
GDI在此有硬性限制:当BorderWidth大于1时,即使BorderStyle请求虚线或点线模式,操作系统也强制使用实线画笔。如果模式重要,请使用宽度1。
绘制模式
DrawMode选择将画笔与目标像素组合的光栅操作。作为DrawModeConstants的成员:vbCopyPen(默认——不透明绘制)或XOR / AND / NOT / 合并变体之一。非默认模式主要用于在现有背景上绘制的"橡皮筋"反馈——两次应用相同的XOR会抵消自身,恢复原始像素。
无交互
与大多数其他控件不同,Line不引发任何类型的鼠标、键盘或焦点事件,也没有Caption、Enabled或ToolTipText。要使区域可点击,请在上面放置一个透明的Label。
属性
BorderColor
线条颜色,类型为OLE_COLOR。默认为系统窗口文本颜色。
BorderStyle
画笔模式。作为BorderStyleConstants的成员:vbTransparent (0)、vbBSSolid (1, 默认)、vbBSDash (2)、vbBSDot (3)、vbBSDashDot (4)、vbBSDashDotDot (5)或vbBSInsideSolid (6)。当BorderWidth大于1时被Win32强制为vbBSSolid。
BorderWidth
画笔宽度,以像素为单位。Long,默认1。大于1的宽度忽略BorderStyle并始终绘制实线。
Container
承载此线条的控件——通常是窗体、Frame或UserControl。使用Get读取,使用Set更改。
ControlType
标识此控件的只读ControlTypeConstants值。Line与Shape控件共享vbShape常量——两者都是无窗口、基于点的几何图元,没有专用的控件类型标识符。
DrawMode
线条绘制将画笔与目标组合时应用的光栅操作。作为DrawModeConstants的成员:vbCopyPen(默认)为正常不透明绘制;其他值产生XOR、AND、NOT和其他像素混合效果。
Index
当线条是控件数组的一部分时,此实例在数组中从0开始的Long索引。在非数组实例上读取Index会引发运行时错误343(对象不是数组)。运行时只读。
Name
控件在其父级上的唯一设计时名称。运行时只读。
Parent
对最终包含此线条的Form(或UserControl)的引用。只读。
Tag
应用程序可用于将自定义数据与线条关联的自由格式String。框架忽略。
Visible
线条是否显示。Boolean,默认True。默认属性。
X1
第一个端点的水平位置,以容器的ScaleMode单位。Double。
X2
第二个端点的水平位置,以容器的ScaleMode单位。Double。
Y1
第一个端点的垂直位置,以容器的ScaleMode单位。Double。
Y2
第二个端点的垂直位置,以容器的ScaleMode单位。Double。
方法
ZOrder
将线条移到其容器内无窗口同级堆栈的前面或后面。
语法:object.ZOrder [ Position ]
- Position
- 可选 ZOrderConstants的成员:vbBringToFront (0, 默认)或vbSendToBack (1)。
事件
Initialize
在线条连接到其容器的绘制周期后、首次绘制前引发一次。默认事件。
语法:object_Initialize( )