RowSourceType 属 性
指定控制中值的来源类型 设计和运行时可用
语 法
Control. RowSourceType[ = nSource ]
参 数 描 述
nSource
RowSourceType 属 性 的 设 置 有
设 |
置 |
说 明 |
|
---|---|---|---|
0 |
( 默认值 ) 无 如果使用了默认值 则在运行时使用 AddItem AddListItem 方法填充列 |
或 |
|
1 |
值 使用由逗号分隔的列填充 |
||
2 |
别名 使用 ColumnCount 属性在表中选择字段 |
||
3 |
SQL 语句 SQL SELECT 命令创建一个临时表或一个表 |
||
4 |
查询 ( .QPR) 指定有 .QPR 扩展名的文件名 |
||
5 | 数组 |
设置列属性可以显示多维数组的多个列 |
|
6 | 字段 |
用逗号分隔的字段列表 字段前可以加上由表别名和句点组 |
|
成的前缀 |
- 文件
用当前目录填充列 这时 RowSource 属性中指定的是文件梗概 ( 诸如 *.DBF 或 *.TXT) 或掩码
续 表
- 结构
由 RowSource 指定的表的字段填充列
附注 注意 当 RowSourceType 设置为 8 时 如果 RowSource 属性为空 则将当前选中的表用作组合框或列表框控件的源 否则RowSource 属性指定了用作组合框或列表框控件的源表的别名
- 弹出式菜单
包含此设置是为了提供向后兼容性
有关 使用每个 RowSourceType 设置 的 详细内容 请 参 阅 Microsoft Visual FoxPro 6.0 中文版程序员指南 的第 十 章 使用控件 中的 使用列表框和下拉列表框
示 例
下面的 example 创建了一个列表框 列表框的项源是数组 数组的名称由 RowSource 属性指定 RowSourceType 属性的设置是 5 数组 它指定列表框的项源是数组
列表框的 MultiSelect 属性设置为 真 (.T.) 即允许从列表框中做多项选择 使用
ListCount Selected 和 List 属性将列表框中所做的选择显示出来 从而可以确定列表框中项的数目和选择的项
CLEAR
DIMENSION gaMyListArray(10)
FOR gnCount = 1 to 10 && 用字母填充数组
STORE REPLICATE(CHR(gnCount+64),6) TO gaMyListArray(gnCount) NEXT
frmMyForm = CREATEOBJECT('Form') && 创建一个表单
frmMyForm.Closable = .f. && 使控件菜单无效
frmMyForm.Move(150,10) && 移动表单
frmMyForm.AddObject('cmbCommand1','cmdMyCmdBtn') && 添加 Quit 命令按钮
frmMyForm.AddObject('lstListBox1','lstMyListBox') && 添加 ListBox 控件
frmMyForm.lstListBox1.RowSourceType = 5 && 指定一个数组
frmMyForm.lstListBox1.RowSource = 'gaMyListArray' && 包含列表项的数组
frmMyForm.cmbCommand1.Visible =.T. && 命令按钮可见
frmMyForm.lstListBox1.Visible =.T. && 列表框可见
frmMyForm.SHOW && 显示表单
READ 事件 && 开始事件处理
DEFINE CLASS cmdMyCmdBtn AS CommandButton && 创建命令按钮
Caption = '\<Quit' && 命令按钮上的标题 Cancel = .T. && 默认的取消命令按钮 (Esc) Left = 125 && 命令按钮所在的列
Top = 210 && 命令按钮所在的行
Height = 25 && 命令按钮的高度
PROCEDURE Click
CLEAR EVENT && 结束事件处理 关闭表单
CLEAR && 清理 Visual FoxPro 主菜单
ENDDEFINE
DEFINE CLASS lstMyListBox AS ListBox && 创建 ListBox 控件
Left = 10 && List Box 所在的列 Top = 10 && List Box 所在的行MultiSelect = .T. && 允许多重选择
PROCEDURE Click ACTIVATE SCREEN CLEAR
? "Selected items:"
? "---------------"
FOR nCnt = 1 TO ThisForm .lstListBox1.ListCount
IF ThisForm.lstListBox1.Selected(nCnt) && 选择了此项吗
? SPACE(5) + ThisForm.lstListBox1.List(nCnt) && 显示项
ENDIF ENDFOR
ENDDEFINE
应 用 于
组合框 列表框 请 参 阅RowSource 属 性