CheckBox 类
CheckBox是Win32原生控件,显示一个小方框,可选后跟文本标题,用于让用户在两个值之间做出选择,如是/否、真/假或开/关。也可以从代码将其设为第三种不确定(灰色)状态,通常表示"不适用"或"混合"。
控件通常在设计时放置在Form或UserControl上。默认属性是Value,默认事件是Click。
Private Sub Form_Load()
Check1.Caption = "I &agree to the terms"
Check1.Value = vbUnchecked
End Sub
Private Sub Check1_Click()
cmdContinue.Enabled = (Check1.Value = vbChecked)
End Sub三态行为
| 常量 | 值 | 含义 |
|---|---|---|
| vbUnchecked | 0 | 复选框未选中。 |
| vbChecked | 1 | 复选框已选中。 |
| vbGrayed | 2 | 复选框处于不确定(灰色)状态。 |
点击未选中或灰色的复选框会选中它;点击已选中或灰色的复选框会取消选中。灰色状态只能从代码到达——赋值vbGrayed给Value以显示。赋值负数会引发运行时错误380(无效属性值)。
Check1.Value = vbGrayed ' show the indeterminate state标题和助记符
显示在方框旁边(或当Alignment为tbRightJustify时在方框之前)的文本来自Caption。标题中的和号将下一个字符标记为键盘助记符:按**Alt+**该字符将焦点移到复选框并切换其值。使用&&显示字面和号。
Check1.Caption = "Use && in folder names" ' renders as: Use & in folder names图形样式
当Style为vbButtonGraphical时,复选框为所有者绘制,显示赋给Picture、DownPicture和DisabledPicture的位图,而非标准方块。PictureAlignment、Padding和PictureDpiScaling控制图片相对于标题的定位方式。
数据绑定
设置DataSource和DataField将控件的Value连接到Data控件记录集的字段。绑定字段作为Boolean读取:非零/True值将Value设为vbChecked,零/False设为vbUnchecked。赋值非Boolean字段值会引发运行时错误13(类型不匹配)。
属性
Alignment
指定Caption文本出现在方框的哪一侧。
语法:object.Alignment [ = value ]
- value
- AlignmentConstantsNoCenter的成员:tbLeftJustify(0,默认——标题在方框右侧)或tbRightJustify(1——标题在方框左侧)。
Appearance
决定操作系统绘制控件边框的方式。AppearanceConstants的成员:vbAppearFlat或vbAppear3d(默认)。
BackColor
背景色,作为OLE_COLOR。默认为系统3D表面颜色。
Caption
显示在复选框旁边的文本。和号将下一个字符标记为助记符;&&产生字面和号。字符串直接从底层窗口读取——赋值给Caption会立即反映。
语法:object.Caption [ = string ]
CausesValidation
决定先前聚焦控件的Validate事件是否在此控件获得焦点之前运行。Boolean,默认True。
ControlType
标识此控件为复选框的只读ControlTypeConstants值。始终为vbCheckBox。
DataField
绑定的DataSource记录集中由Value镜像的字段名称。String。
DataSource
对Data控件(或其他DataSource提供者)的引用,其记录集为DataField提供值。用Set设置。
DisabledPicture
当控件禁用且Style为vbButtonGraphical时,替代Picture绘制的StdPicture。
DownPicture
当控件处于按下状态且Style为vbButtonGraphical时,替代Picture绘制的StdPicture。
DragIcon
在控件被拖放时用作鼠标光标的StdPicture(参见Drag和DragMode)。
DragMode
控件是否应在用户按住鼠标时自行拖动。DragModeConstants的成员:vbManual(0,默认——从代码调用Drag)或vbAutomatic(1)。
Enabled
决定控件是否接受用户输入。禁用的复选框显示其当前值但变暗,忽略键盘和鼠标交互。Boolean,默认True。
Font
用于渲染Caption的StdFont。便捷属性FontName、FontSize、FontBold、FontItalic、FontStrikethru和FontUnderline读写此对象的对应成员。
ForeColor
标题的文本颜色,作为OLE_COLOR。默认为系统按钮文本颜色。
Height
控件的高度,默认以缇为单位(或以容器的ScaleMode单位)。Single。
HelpContextID
标识应用程序帮助文件中主题的Long,当用户在控件有焦点时按F1时检索。
hWnd
底层按钮的Win32窗口句柄,作为LongPtr。只读。适用于传递给API函数。
Index
当控件是控件数组的一部分时,此实例在数组中的Long零基索引。运行时只读。
Left
从容器左边缘到控件左边缘的水平距离。Single。
MaskColor
INFO
保留用于与VB6兼容;目前在twinBASIC中尚未实现。
MouseIcon
当MousePointer为vbCustom且指针在控件上方时用作鼠标光标的StdPicture。
MousePointer
指针在控件上方时显示的鼠标光标。MousePointerConstants的成员。
Name
控件在其父窗体上的唯一设计时名称。运行时只读。
OLEDropMode
控件如何响应OLE放置。OLEDropConstants的受限成员:vbOLEDropNone或vbOLEDropManual。CheckBox不支持自动放置模式。
Opacity
控件的不透明度百分比(0--100,默认100)。超出范围的值在Initialize时被钳制。子控件需要Windows 8或更高版本。
Padding
在图片和标题之间插入的空像素数(当PictureAlignment为vbAlignLeft或vbAlignRight时)或在标题和对应边缘之间(当vbAlignTop或vbAlignBottom时)。Long,默认2。仅在Style为vbButtonGraphical时有意义。
Parent
对包含此控件的Form(或UserControl)的引用。只读。
Picture
当Style为vbButtonGraphical时绘制在控件上的StdPicture。赋值Nothing恢复空图片而非移除位图表面。
PictureAlignment
当Style为vbButtonGraphical时Picture相对于标题的定位方式。AlignConstants的成员:vbAlignNone、vbAlignTop(默认)、vbAlignBottom、vbAlignLeft、vbAlignRight。
PictureDpiScaling
当True时,绘制前按当前DPI因子缩放Picture、DownPicture和DisabledPicture。Boolean,默认False。
RightToLeft
INFO
保留用于与VB6兼容;目前在twinBASIC中尚未实现。使用Alignment将标题翻转到方框左侧。
Style
在标准Win32复选框外观和所有者绘制图形按钮之间选择。ButtonConstants的成员:vbButtonStandard(0,默认)或vbButtonGraphical(1)。在运行时更改Style会重新创建底层窗口。
TabIndex
控件在窗体TAB键导航顺序中的位置。Long。
TabStop
用户是否可以通过按TAB键到达控件。Boolean,默认True。禁用的控件无论此设置如何都会被跳过。
Tag
应用程序可用于将自定义数据与控件关联的自由格式String。框架忽略此属性。
ToolTipText
用户悬停在控件上方时作为工具提示显示的多行String。
Top
从容器顶部到控件顶部的垂直距离。Single。
TransparencyKey
设置后成为渲染控件中完全透明的OLE_COLOR。默认-1禁用效果。子控件需要Windows 8或更高版本。
UseMaskColor
INFO
保留用于与VB6兼容;目前在twinBASIC中尚未实现。
Value
复选框的当前状态。默认属性。
语法:object.Value [ = value ]
- value
- CheckBoxConstants的成员:vbUnchecked(0)、vbChecked(1)或vbGrayed(2)。负数会引发运行时错误380。
赋值与当前值不同的值会引发Click事件。
Visible
控件是否显示。Boolean,默认True。
VisualStyles
绘制控件时是否使用操作系统主题引擎。Boolean。
WhatsThisHelpID
标识应用程序帮助文件中"这是什么?"帮助弹出主题的Long。参见ShowWhatsThis。
Width
控件的宽度。Single。
方法
Drag
开始、完成或取消手动拖放操作。通常在DragMode为vbManual时从MouseDown处理程序调用。
语法:object.Drag [ Action ]
- Action
- 可选 DragConstants的成员:vbCancel(0)、vbBeginDrag(1,默认)或vbEndDrag(2)。
Move
在单次调用中重新定位并可选地调整控件的尺寸。
语法:object.Move Left [, Top [, Width [, Height ] ] ]
- Left
- 必需 给出新水平位置的Single。
- Top、Width、Height
- 可选 对应属性的新值。省略的值保持不变。
OLEDrag
从控件发起OLE拖动操作,引发OLEStartDrag事件以便应用程序填充DataObject。
语法:object.OLEDrag
Refresh
强制立即重绘控件。
语法:object.Refresh
SetFocus
将输入焦点移到控件。控件必须同时Visible和Enabled,否则引发运行时错误5(无效的过程调用或参数)。
语法:object.SetFocus
ShowWhatsThis
以"这是什么?"弹窗形式显示由WhatsThisHelpID标识的主题。
语法:object.ShowWhatsThis
ZOrder
将控件带到同级堆栈的前面或后面。
语法:object.ZOrder [ Position ]
- Position
- 可选 ZOrderConstants的成员:vbBringToFront(0,默认)或vbSendToBack(1)。
事件
Click
在Value更改后引发——无论用户点击了方框、按了访问键还是在代码中赋了不同的值。默认事件。
语法:object_Click( )
DragDrop
当手动拖动操作在目标控件上结束时在目标控件上引发。
语法:object_DragDrop( Source As Control, X As Single, Y As Single )
DragOver
当手动拖动操作进行中时在光标下方的控件上引发。
语法:object_DragOver( Source As Control, X As Single, Y As Single, State As Integer )
GotFocus
当控件获得输入焦点时引发。
语法:object_GotFocus( )
KeyDown
当控件有焦点时用户按下任意键时引发。
语法:object_KeyDown( KeyCode As Integer, Shift As Integer )
KeyPress
当用户输入产生ANSI按键的字符时引发。
语法:object_KeyPress( KeyAscii As Integer )
KeyUp
当控件有焦点时用户释放键时引发。
语法:object_KeyUp( KeyCode As Integer, Shift As Integer )
LostFocus
当控件失去输入焦点时引发。
语法:object_LostFocus( )
MouseDown
当用户在控件上方按下任意鼠标按钮时引发。
语法:object_MouseDown( Button As Integer, Shift As Integer, X As Single, Y As Single )
MouseMove
当光标在控件上方移动时引发。
语法:object_MouseMove( Button As Integer, Shift As Integer, X As Single, Y As Single )
MouseUp
当用户在控件上方释放鼠标按钮时引发。
语法:object_MouseUp( Button As Integer, Shift As Integer, X As Single, Y As Single )
OLECompleteDrag
当OLE拖动操作完成时在源控件上引发,指示目标接受了哪种效果(复制、移动、无)。
语法:object_OLECompleteDrag( Effect As Long )
OLEDragDrop
当用户在目标控件上放置数据时在目标控件上引发。
语法:object_OLEDragDrop( Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single )
OLEDragOver
当OLE拖动经过目标控件时在目标控件上引发。
语法:object_OLEDragOver( Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer )
OLEGiveFeedback
在拖动期间在源控件上引发,以便应用程序调整光标或其他视觉反馈。
语法:object_OLEGiveFeedback( Effect As Long, DefaultCursors As Boolean )
OLESetData
当目标请求已注册但尚未提供的格式的数据时在源控件上引发。
语法:object_OLESetData( Data As DataObject, DataFormat As Integer )
OLEStartDrag
在OLE拖动开始时在源控件上引发,以便应用程序填充DataObject并选择允许的效果。
语法:object_OLEStartDrag( Data As DataObject, AllowedEffects As Long )
Validate
当焦点移动到CausesValidation为True的另一个控件时引发。将Cancel设为True使焦点保留在此控件上。
语法:object_Validate( Cancel As Boolean )