Skip to content

图像组合框控件(ImageCombo) ​

提供支持图标显示的增强型组合框控件,每个项目可关联图像列表中的图标。

枚举 ​

ImcStyleConstants ​

常量值说明
ImcStyleDropDownCombo0下拉组合框(可输入)
ImcStyleSimpleCombo1简单组合框(列表始终可见)
ImcStyleDropDownList2下拉列表(仅选择)

ImcEndEditReasonConstants ​

常量值说明
ImcEndEditReasonLostFocus1编辑结束原因:失去焦点
ImcEndEditReasonReturn2编辑结束原因:按回车键
ImcEndEditReasonEscape3编辑结束原因:按 Escape 键
ImcEndEditReasonDropDown4编辑结束原因:下拉选择

ImcEllipsisFormatConstants ​

常量值说明
ImcEllipsisFormatNone0不使用省略号
ImcEllipsisFormatEnd1文本末尾使用省略号

ImcComboItem 对象 ​

表示图像组合框中的一个项目。

ImcComboItem 属性 ​

Index ​

vb
Property Get Index() As Long

返回项目在集合中的索引。只读。

Key ​

vb
Property Get/Let Key() As String

返回/设置项目的键值。

Tag ​

vb
Property Get/Let/Set Tag() As Variant

返回/设置项目的附加数据。

Text ​

vb
Property Get/Let Text() As String

返回/设置项目的文本。

Image ​

vb
Property Get/Let Image() As Variant

返回/设置项目关联的图像索引或键。

ImageIndex ​

vb
Property Get ImageIndex() As Long

返回项目关联的图像索引。只读。

SelImage ​

vb
Property Get/Let SelImage() As Variant

返回/设置项目选中时关联的图像索引或键。

SelImageIndex ​

vb
Property Get SelImageIndex() As Long

返回项目选中时关联的图像索引。只读。

Indentation ​

vb
Property Get/Let Indentation() As Long

返回/设置项目的缩进级别(以图标宽度为单位)。

Selected ​

vb
Property Get/Let Selected() As Boolean

返回/设置项目是否被选中。

Data ​

vb
Property Get/Let Data() As LongPtr

返回/设置项目的附加数值数据。

ImcComboItems 集合 ​

表示图像组合框中所有项目的集合。

ImcComboItems 属性和方法 ​

NewEnum ​

vb
Public Function NewEnum() As IEnumVARIANT

返回枚举器,支持 For Each 语法。

Add ​

vb
Public Function Add(Optional ByVal Index As Long, Optional ByVal Key As String, Optional ByVal Text As String, Optional ByVal Image As Variant, Optional ByVal SelImage As Variant, Optional ByVal Indentation As Variant) As ImcComboItem

添加一个项目到集合中,返回新创建的 ImcComboItem 对象。

Item ​

vb
Public Property Get Item(ByVal Index As Variant) As ImcComboItem

按索引或键返回项目。

Exists ​

vb
Public Function Exists(ByVal Index As Variant) As Boolean

检查指定索引或键的项目是否存在。

Count ​

vb
Public Property Get Count() As Long

返回集合中的项目数量。

Clear ​

vb
Public Sub Clear()

移除集合中的所有项目。

Remove ​

vb
Public Sub Remove(ByVal Index As Variant)

按索引或键移除一个项目。

属性 ​

ControlsEnum ​

vb
Property Get ControlsEnum() As VBRUN.ParentControls

返回父控件枚举器。

Name ​

vb
Property Get Name() As String

返回控件的名称。

Tag ​

vb
Property Get/Let Tag() As String

返回/设置控件的标记值。

Parent ​

vb
Property Get Parent() As Object

返回控件的父对象。

Container ​

vb
Property Get/Set Container() As Object

返回/设置控件的容器。

Left ​

vb
Property Get/Let Left() As Single

返回/设置控件左边缘的位置。

Top ​

vb
Property Get/Let Top() As Single

返回/设置控件上边缘的位置。

Width ​

vb
Property Get/Let Width() As Single

返回/设置控件的宽度。

Height ​

vb
Property Get/Let Height() As Single

返回/设置控件的高度。

Visible ​

vb
Property Get/Let Visible() As Boolean

返回/设置控件是否可见。

ToolTipText ​

vb
Property Get/Let ToolTipText() As String

返回/设置控件的工具提示文本。

HelpContextID ​

vb
Property Get/Let HelpContextID() As Long

返回/设置控件的帮助上下文 ID。

WhatsThisHelpID ​

vb
Property Get/Let WhatsThisHelpID() As Long

返回/设置控件的"这是什么"帮助 ID。

DragIcon ​

vb
Property Get/Let/Set DragIcon() As IPictureDisp

返回/设置拖动操作时显示的图标。

DragMode ​

vb
Property Get/Let DragMode() As Integer

返回/设置拖动模式(手动或自动)。

hWnd ​

vb
Property Get hWnd() As LongPtr

返回图像组合框的窗口句柄。

hWndUserControl ​

vb
Property Get hWndUserControl() As LongPtr

返回 UserControl 的窗口句柄。

hWndCombo ​

vb
Property Get hWndCombo() As LongPtr

返回 ComboBoxEx 控件的窗口句柄。

hWndEdit ​

vb
Property Get hWndEdit() As LongPtr

返回编辑框部分的窗口句柄。

hWndList ​

vb
Property Get hWndList() As LongPtr

返回列表部分的窗口句柄。

Font ​

vb
Property Get/Let/Set Font() As StdFont

返回/设置控件使用的字体。

VisualStyles ​

vb
Property Get/Let VisualStyles() As Boolean

返回/设置是否启用视觉样式。

Enabled ​

vb
Property Get/Let Enabled() As Boolean

返回/设置控件是否可用。

OLEDragMode ​

vb
Property Get/Let OLEDragMode() As VBRUN.OLEDragConstants

返回/设置 OLE 拖动模式。

OLEDropMode ​

vb
Property Get/Let OLEDropMode() As OLEDropModeConstants

返回/设置 OLE 放置模式。参见通用枚举。

MousePointer ​

vb
Property Get/Let MousePointer() As CCMousePointerConstants

返回/设置鼠标指针类型。参见通用枚举。

MouseIcon ​

vb
Property Get/Let/Set MouseIcon() As IPictureDisp

返回/设置自定义鼠标图标。

MouseTrack ​

vb
Property Get/Let MouseTrack() As Boolean

返回/设置是否启用鼠标进入/离开跟踪。

RightToLeft ​

vb
Property Get/Let RightToLeft() As Boolean

返回/设置是否启用从右到左布局。

RightToLeftLayout ​

vb
Property Get/Let RightToLeftLayout() As Boolean

返回/设置是否启用从右到左布局镜像。

RightToLeftMode ​

vb
Property Get/Let RightToLeftMode() As CCRightToLeftModeConstants

返回/设置从右到左模式。参见通用枚举。

ImageList ​

vb
Property Get/Set/Let ImageList() As Variant

返回/设置关联的 ImageList 控件,用于提供项目图标。

Style ​

vb
Property Get/Let Style() As ImcStyleConstants

返回/设置组合框的样式。

Locked ​

vb
Property Get/Let Locked() As Boolean

返回/设置控件是否锁定(禁止编辑和选择)。

Text ​

vb
Property Get/Let Text() As String

返回/设置编辑框中的文本。

Default ​

vb
Property Get/Let Default() As String

返回/设置默认值。

Indentation ​

vb
Property Get/Let Indentation() As Long

返回/设置新项目的默认缩进级别。

ExtendedUI ​

vb
Property Get/Let ExtendedUI() As Boolean

返回/设置是否使用扩展用户界面。

MaxDropDownItems ​

vb
Property Get/Let MaxDropDownItems() As Integer

返回/设置下拉列表中可见的最大项目数。

ShowImages ​

vb
Property Get/Let ShowImages() As Boolean

返回/设置是否显示项目图标。

MaxLength ​

vb
Property Get/Let MaxLength() As Long

返回/设置编辑框中可输入的最大字符数。

IMEMode ​

vb
Property Get/Let IMEMode() As CCIMEModeConstants

返回/设置输入法编辑器模式。参见通用枚举。

EllipsisFormat ​

vb
Property Get/Let EllipsisFormat() As ImcEllipsisFormatConstants

返回/设置文本超出宽度时的省略号格式。

ScrollTrack ​

vb
Property Get/Let ScrollTrack() As Boolean

返回/设置滚动条是否实时跟踪。

ComboItems ​

vb
Property Get ComboItems() As ImcComboItems

返回组合框项目集合。只读。

SelStart ​

vb
Property Get/Let SelStart() As Long

返回/设置选中文本的起始位置。

SelLength ​

vb
Property Get/Let SelLength() As Long

返回/设置选中文本的长度。

SelText ​

vb
Property Get/Let SelText() As String

返回/设置当前选中的文本。

TopItem ​

vb
Property Get/Set TopItem() As ImcComboItem

返回/设置列表顶部可见的项目。

SelectedItem ​

vb
Property Get/Set SelectedItem() As ImcComboItem

返回/设置当前选中的项目。

DroppedDown ​

vb
Property Get/Let DroppedDown() As Boolean

返回/设置下拉列表是否展开。

vb
Property Get/Let DropDownWidth() As Single

返回/设置下拉列表的宽度。简单样式下不支持。

OLEDraggedItem ​

vb
Property Get OLEDraggedItem() As ImcComboItem

返回 OLE 拖放操作中当前被拖动的项目。只读。

方法 ​

OLEDrag ​

vb
Public Sub OLEDrag()

启动 OLE 拖动操作。

Drag ​

vb
Public Sub Drag(Optional ByRef Action As Variant)

开始、结束或取消拖动操作。

SetFocus ​

vb
Public Sub SetFocus()

将焦点移到该控件。

ZOrder ​

vb
Public Sub ZOrder(Optional ByRef Position As Variant)

设置控件在其层级中的 Z 顺序位置。

Refresh ​

vb
Public Sub Refresh()

强制完全重绘控件。

GetItemHeight ​

vb
Public Function GetItemHeight() As Single

返回列表项目的高度(考虑图标高度)。

FindItem ​

vb
Public Function FindItem(ByVal Text As String, Optional ByVal Index As Long, Optional ByVal Partial As Boolean, Optional ByVal Wrap As Boolean) As ImcComboItem

在列表中查找项目并返回该项目的引用。Partial 为 True 时进行部分匹配,Wrap 为 True 时从开头继续搜索。

事件 ​

Click ​

vb
Public Event Click()

单击控件时发生。

DblClick ​

vb
Public Event DblClick()

双击控件时发生。

Scroll ​

vb
Public Event Scroll()

滚动列表时发生。

Change ​

vb
Public Event Change()

控件内容发生变化时发生。

vb
Public Event DropDown()

下拉列表即将展开时发生。

CloseUp ​

vb
Public Event CloseUp()

下拉列表关闭时发生。

ItemDrag ​

vb
Public Event ItemDrag(ByVal Item As ImcComboItem, ByVal Button As Integer)

项目发起拖放操作时发生。

BeginEdit ​

vb
Public Event BeginEdit()

用户激活下拉列表或点击编辑框时发生。

EndEdit ​

vb
Public Event EndEdit(ByVal Changed As Boolean, ByVal NewIndex As Long, ByVal NewText As String, ByVal Reason As ImcEndEditReasonConstants)

编辑操作结束时发生。Changed 指示文本是否改变,NewIndex 为新选中项索引,NewText 为新文本,Reason 为结束原因。

PreviewKeyDown ​

vb
Public Event PreviewKeyDown(ByVal KeyCode As Integer, ByRef IsInputKey As Boolean)

在 KeyDown 事件之前发生,可设置 IsInputKey 标记按键是否为输入键。

PreviewKeyUp ​

vb
Public Event PreviewKeyUp(ByVal KeyCode As Integer, ByRef IsInputKey As Boolean)

在 KeyUp 事件之前发生。

KeyDown ​

vb
Public Event KeyDown(KeyCode As Integer, Shift As Integer)

按下键盘键时发生。

KeyUp ​

vb
Public Event KeyUp(KeyCode As Integer, Shift As Integer)

释放键盘键时发生。

KeyPress ​

vb
Public Event KeyPress(KeyChar As Integer)

按下并释放字符键时发生。

MouseDown ​

vb
Public Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

按下鼠标按钮时发生。

MouseMove ​

vb
Public Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

移动鼠标时发生。

MouseUp ​

vb
Public Event MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

释放鼠标按钮时发生。

MouseEnter ​

vb
Public Event MouseEnter()

鼠标进入控件时发生。

MouseLeave ​

vb
Public Event MouseLeave()

鼠标离开控件时发生。

OLECompleteDrag ​

vb
Public Event OLECompleteDrag(Effect As Long)

OLE 拖放操作完成或取消后,在源控件上发生。

OLEDragDrop ​

vb
Public Event OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)

数据通过 OLE 拖放操作放置到控件上时发生。

OLEDragOver ​

vb
Public Event OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer)

OLE 拖放操作期间鼠标移过控件时发生。

OLEGiveFeedback ​

vb
Public Event OLEGiveFeedback(Effect As Long, DefaultCursors As Boolean)

OLE 拖放操作期间需要更改鼠标光标时,在源控件上发生。

OLESetData ​

vb
Public Event OLESetData(Data As DataObject, DataFormat As Integer)

放置目标请求数据时,在源控件上发生。

OLEStartDrag ​

vb
Public Event OLEStartDrag(Data As DataObject, AllowedEffects As Long)

OLE 拖放操作启动时发生。

代码示例 ​

基本用法 ​

vb
Private Sub Form_Load()
    Set ImageCombo1.ImageList = ImageList1
    With ImageCombo1
        .Style = ImcStyleDropDownCombo
        .ShowImages = True
        .MaxDropDownItems = 10
    End With

    Dim Item As ImcComboItem
    Set Item = ImageCombo1.ComboItems.Add(, "k1", "项目一", 1, 2)
    Set Item = ImageCombo1.ComboItems.Add(, "k2", "项目二", 1, 2)
    Set Item = ImageCombo1.ComboItems.Add(, "k3", "子项目", 3, 4)
    Item.Indentation = 1
End Sub

Private Sub ImageCombo1_Click()
    If Not ImageCombo1.SelectedItem Is Nothing Then
        Debug.Print "选中: " & ImageCombo1.SelectedItem.Text
    End If
End Sub

Private Sub ImageCombo1_EndEdit(ByVal Changed As Boolean, ByVal NewIndex As Long, ByVal NewText As String, ByVal Reason As ImcEndEditReasonConstants)
    If Changed Then
        Debug.Print "编辑完成: " & NewText
    End If
End Sub

twinBASIC及其LOGO版权为作者"韦恩"所有