VisualFreeBasic控件_Combo 下拉列表框

2026-1-20 / 0 评论 / 48 阅读

本控件,其实是一个组合控件,由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 控件自绘

评论一下?

OωO
取消