以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 下拉窗口问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97430) |
-- 作者:cuicuibing -- 发布时间:2017/3/12 10:53:00 -- 下拉窗口问题 使用DropDownForm,设计字段的下拉窗口按照 一、设计下拉窗口 1、首先在订单表新增一个窗口,名称为"窗口1",窗口类型为"DropDownForm",窗口插入一个Table控件,Table控件的“作为副本”属性设置为True,“允许编辑”属性设置为False,并绑定到客户表。 2、将窗口的DropDownOpened事件代码设置为: Dim txt As
String = e.Form.DropDownBox.Text 这样下拉窗口显示后,会自动根据下拉列表框的内容,筛选出可能的客户,并将输入焦点返回到下拉列表框。 3、将Table控件的DoubleClick事件代码设置为: Forms("窗口1").DropDownBox.CloseDropDown() 这样在下拉窗口双击某个客户,就会关闭下拉窗口。 4、将Table控件的KeyDown事件代码设置为: If e.KeyCode =
Keys.Enter Then 这样在下拉窗口中选择某个客户,按回车键,也会关闭下拉窗口。 5、将窗口的DropDownClosed事件代码设置为: If e.Selected
Then
\'如果选择了值 这样关闭下拉窗口后,可以自动将选定客户的客户ID输入到下拉列表框中。 如果除了客户ID列,还要同时从客户表选择其它多列内容输入到订单表,可以将DropDownClosed事件代码改为: If
e.Selected Then
\'如果选择了值 二、设计订单表事件代码 下拉窗口设计完成,现在设计订单表的事件代码。 1、将订单表的KeyPressEdit事件代码设置为: If e.Col.Name =
"客户ID"
Then
\'如果编辑的是客户ID列 这样一旦用户在订单表的客户ID列输入内容,就会自动打开下拉窗口。 2、将订单表的ChangeEdit事件代码设置为: If e.Col.Name =
"客户ID"
Then
\'如果编辑的是客户ID列 这样就能根据用户在客户ID列输入的内容,动态筛选出可能的客户。 3、将订单表的KeyDownEdit事件代码设置为: If e.Col.Name = "客户ID"
Then
\'如果编辑的是客户 ID列 这样用户在客户ID列输入内容的时候,可以按"上箭头"按键,选择上一个客户,按"下箭头"按键,选择下一个客户。 4、将订单表的ValidateEdit事件代码设置为: If e.Col.DroppedDown Then
\'如果下拉窗口已经打开 这样用户在编辑过程中,按Tab键离开单元格的时候,能自动关闭下拉窗口 5、最后在项目事件AfterOpenProject事件中加入代码: Tables("订单").Cols("客户ID").DropForm = "窗口1" 取值后, 保存后。点击别的数据,显示集合已修改;可能无法执行枚举操作。我的窗口中,有几个table,是通过点击另一个table加载的数据。 [此贴子已经被作者于2017/3/12 11:10:49编辑过]
|
-- 作者:有点色 -- 发布时间:2017/3/12 20:20:00 -- 上传具体例子测试。 |