zoukankan      html  css  js  c++  java
  • VCL组件之列表框(ListBox)与组合框(ComboBox)

    ListBox组件与ComboBox组件

    列表框与组合框组件也被广泛的使用。列表框表示标准Windows列表框,它提供用户选的一列选择表。如果列表框包含更多的项,不能一次显示,滚动栏提供存取列表框中其余项。

    New Term

    一些列表框(list boxes)是自绘(Owner-Draw)表框,在自绘列表框中,程序员负责从表框中画表项。

    如果需要,可以自绘列表框,也许没有人意识到,自绘列表框相当普遍,Delphi中的ToolBar Editor对话框包含两个列表框,如下图:

    0191

    左边1号表框是普通的列表框,它列出能选择的可能按钮组。右边2号列表框是自绘列表框,它显示出现在工具栏上的实际按钮,同时显示了按钮的文本描述。

    组合框是特殊化的列表框,实际上组合框是列表框与编辑控件的组合。用户可以从列表中选择或者在编辑框中输入一个值。当用户从下拉列表中选择项时,该项放到了编辑控件中。有五种不同类型的组合框。组合框的不同类型由Style属性决定。

    组合框类型

    • csDropDown——默认值,下拉组合框。用户可以从列表中选择一个条目,或在编辑区中输入新项。这种类型的ComboBox可进行查找,即输入1个或多个字符并按上下键可以选择与用户输入字符最相匹配的条目。
    • csSimple——一个不含下拉箭头的简单组合框,用户可以用键盘上的上下方向键选择一个条目,或在编辑区域输入新的条目
    • csDropdownList——下拉列表组合框,在这种类型的组合框中,编辑框是“只读”的,用户必须选择一个条目,但也可键入条目第一个字母选择它。例如,键入P键可选择所有以P打头的条目。
    • csOwnerDrawFixed——条目不一定是字符串,可以是自绘图像,在显示每一项之前,都会触发OnDrawItem事件。项的高度由ItemHeight属性指定。
    • csOwnerDrawVariable——条目是可以是自绘图像,高度是可变的。在显示每一项之前,都会触发两个事件。在OnMeasureItem事件响应中,我们可以指定项的高度。在OnDrawItem事件句柄中画出每一项。

    下面我们有一个ComboTst的程序,说明了不同类型的组合框,运行程序实际操作一下感受下它们是怎样工作的:

    0192

    星星ComboTst程序下载:ComboTst.rar

    编辑控件的属性

    属性 应用 描述
    Columns ListBox 指定在一栏中的条目列数,缺省值为0
    ExtendedSelection ListBox 用户能否选择一系列连续的条目,Shift+Click或Ctrl+Click。缺省值为True
    IntegralHeight ListBox 是否允许只显示出条目标题的一部分,如果设为False,那么列表框的高度总是一项高度的整数倍,不会出现显示不完整的情况。缺省值为False
    ItemHeight Both 指定条目标题的高度,缺省值为13
    Items Both 包含所有条目的字符串列表,TStrings实例
    MaxLength ComboBox 指定用户可以在编辑区输入的最大字符数,默认为0,表示无限制
    MultiSelect ListBox 用户能否多选,和ExtendedSelection属性配合使用
    Sorted Both 指定列表框中的条目是否按字母顺序排列
    Style Both 指定列表框的样式
    TabWidth ListBox 指定列表框中一个制表符所占像素值
    Text ComboBox 用于设置或返回ComboBox上显示出来的文本,对于csSimple和csDropDown类型的组合框,用户可以直接修改文字,对于其他类型的组合框,Text是在运行期有效的只读属性

    运行期属性

    属性 应用 描述
    ItemIndex ListBox 返回当前被选择的条目序号,如果有多个条目被选择,则返回当前有输入焦点的条目索引值,如果无选择项目返回-1,第一项为0
    SelCount ListBox 返回同时被选取的条目数目
    Selected ListBox 用于判断指定索引号条目是否被选择
    SelLength ComboBox 返回用户在编辑区选定的字符数
    SelStart ComboBox 返回用户在编辑区选定字符的起点序号,从0开始
    SelText ComboBox 返回用户编辑区中选择的文本
    TopIndex ListBox 指定显示在列表框最上方的条目的序号

    对于以前看到的编辑组件,有极少的ListBox和ComboBox方法。

    • Clear方法用于清除控件的所有项。
    • ItemAtPos方法返回指定X,Y坐标的列表项。
    • SelectAll方法选择ComboBox中编辑框的文本。

    在处理组合框和列表框时最常用的事件就是OnChange与OnClick事件。用这些事件决定在列表框中是否选择了某一项。

    Note

    点击组合框的编辑部分或下拉按钮不会产生OnClick事件。只有在组合框的列表框部分点击时才会发生OnClick事件。

    • OnChange事件用来检查组合框的编辑部分的变化,就像用于编辑控件一样。
    • OnDropDown事件用于组合框的下拉按钮被点击时检查。
    • OnMeasureItem和OnDrawItem都用于自绘列表框与自绘组合框。
  • 相关阅读:
    iuplua test failure
    lua C++ wrapper
    lua
    Redux系列01:从一个简单例子了解action、store、reducer
    Meteor入门介绍
    Express入门介绍vs实例讲解
    React半科普文
    Express模版引擎hbs备忘
    Gulp:插件编写入门
    gulp.src()内部实现探究
  • 原文地址:https://www.cnblogs.com/pchmonster/p/2329266.html
Copyright © 2011-2022 走看看