本控件,其实是一个组合控件,由3个控件组成的一个功能性控件

- 组合1:Lable标签 + Command按钮 + ListBox列表框
隐藏ListBox列表框,点击右边Command按钮,显示ListBox列表框 - 组合2:Txt文本 + Command按钮 + ListBox列表框
隐藏ListBox列表框,点击右边Command按钮,显示ListBox列表框 - 组合3:Txt文本 + ListBox列表框
一直显示ListBox列表框
各种组合效果,可以自己设置属性后,运行软件查看效果

添加列表数据,有2种方式
- 在属性里设置

- 用代码添加
Combo1.AddItem "列表数据1"
Combo1.AddItem "列表数据2"
Combo1.AddItem "列表数据3"
主要事件:点击列表框
Sub Form1_Combo1_CBN_SelChange(hWndForm As hWnd, hWndControl As hWnd)
End Sub
主要属性:
Combo1.AddItem 新增列表数据
Combo1.ListIndex 列表选择索引,从0开始,=-1 时表示没选择
Combo1.ListCount 列表数据个数
自己写代码对控件绘画
系统提供的,只是简单的列表显示,需要特殊的显示,比如:显示图标,不同颜色等等,就需要自己绘画了。

在设计属性中,选择自绘,固定和可变是指列表项目的行高,是每行都相同或每行都可以不同
设置自绘,必须是设计时设置,运行软件中,无法修改。
当系统需要绘画时,就会触发自绘事件
Function Form1_Combo1_OwnerDraw(hWndForm As hWnd, hWndControl As hWnd,lpdis As DRAWITEMSTRUCT) As LResult
在这个事件里画,每次只画列表的一个项目。还有一个控件本身,因此这个事件每次触发很多次。
Function = FALSE ' 如果处理了此事件,则应返回 TRUE 。
End Function
VFB里属性页面,控件列表下拉选择,就是 Combo 控件自绘

评论一下?