如何捕捉组合框中的输入
Visual FoxPro 允许在表单中使用组合框来选择或输入数据. 组合框允许数据数据来自不同的源: 值, 别名, SQL 语句, 查询, 数组, 字段, 文件, 结构和弹式菜单. 本文用示例演示如何输入不在组合框的下拉列表中的信息并以组合框中输入的值修改表中字段的值.
更多信息
以下步骤演示如何在组合框中输入数据并当该值不存于表中时, 保存该值到表中的一个字段:
创建一个新表单, 并放入以下代码到它的 Load 事件过程中:
PUBLIC ARRAY aTitle(1)
SELECT DISTINCT(customer.contact) FROM customer ;
INTO ARRAY aTitle
从 \Data 目录添加一个 customer 表到表单的数据环境. \Data 目录可在以下位置找到:
Visual FoxPro 3.x: VFP\Samples\Mainsamp
Visual FoxPro 5.x: VFP\Samples
Visual FoxPro 6.0: \MSDN98\98VS\1033\Samples
放一个文本框到表单中, 并设置它的 ControlSource 属性为:
Customer.Contact
放入一个组合框到表单. 设置它的 RowSource 属性为 aTitle 和 RowSourceType 属性为 5 - 数组.
在它的 InteractiveChange 过程中, 打入以下代码:
IF Customer.Contact != Thisform.combo1.DisplayValue
REPLACE Customer.Contact WITH Thisform.combo1.DisplayValue
Thisform.Text1.Refresh
SELECT DISTINCT(customer.contact) FROM customer ;
INTO ARRAY aTitle
ENDIF
在它的 LostFocus 代码中, 打入以下代码:
IF Customer.Contact != Thisform.combo1.DisplayValue
REPLACE Customer.Contact WITH Thisform.combo1.DisplayValue
Thisform.Text1.Refresh
SELECT DISTINCT(customer.contact) FROM customer ;
INTO ARRAY aTitle
ENDIF
thisform.combo1.displayvalue=""
添加一个命令按钮到表单, 并在它的 Click 事件过程中打入以下代码:
SKIP
ThisForm.Combo1.DisplayValue=Customer.Contact
ThisForm.Refresh
添加另一个命令按钮, 并在它的 Click 事件过程中打入以下代码:
SKIP -1
ThisForm.Combo1.DisplayValue=Customer.Contact
ThisForm.Refresh
保存并运行表单. 修改组合框中的值, 并用两个命令按钮移动表中的记录指针. 关闭表单, 并浏览 Customer 表. 查看 Contact 字段. 在组合框中输入的修改将反映到字段中来