首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

求做效果解决方法

2012-05-07 
求做效果在combo中,输入拼音简码,与之相符的条目自动“上浮”,并最终显示出来[解决办法]看下下面的代码可能

求做效果
在combo中,输入拼音简码,与之相符的条目自动“上浮”,并最终显示出来

[解决办法]
看下下面的代码可能会对你有所帮助,该代码是在十豆三老师代码的基础上修改而定的。

我提的问题焦点是:能否让键盘上的上下箭头键对表单上的列表框起作用的情况下,而表单上的文本框一直保持光标不离开可随时输入字母。
我设计的表单上的列表框RowSourcetype是:6-字段,RowSource是:商品名.名称,拼音简码,在表单上的文本框(用于显示商品名)中先输入拼音简码时就触发interactivechange事件,在该事件中执行set filter this.value$商品名.拼音简码命令,列表框即显示相应一大批商品名,这时根据列表框显示内容的情况,有时还需在文本框中继续输入字母以缩小列表框的显示范围,而有时可直接按键盘上的上下箭头键移动列表框上的选择行到所需的商品名,这时按键盘上的回车键,商品名则进入文本框。问题是:如何让文本框保持光标不离开可随时输入字母的情况下,又能按键盘上的上下箭头键移动列表框的选择行。

--设你的表单上的这个文本框和列表框分别为:Text1和List1

1、
--表单Init事件代码:
This.KeyPreview=.T.
This.List1.Visible=.F.

2、
--表单KeyPress事件代码:
Lparameters nKeyCode, nShiftAltCtrl
If (nKeyCode=5 Or nKeyCode=24 Or nKeyCode=13) And This.List1.Visible And This.List1.ListItemId>0 And This.Text1.Tag='1'
If nKeyCode=13
This.Text1.Value=This.List1.Value
This.List1.Visible=.F.
Else
lnListID=Iif(nKeyCode=5,Max(This.list1.ListItemId-1,1),Min(This.list1.ListItemId+1,This.list1.ListCount))
This.list1.ListItemId=lnListID
Nodefault
Endif
Endif

3、
--Text1的GotFocus事件代码:
This.Tag='1'

--Text1的LostFocus事件代码:
Thisform.List1.Visible=.F.
This.Tag=''

--Text1的InteractiveChange事件代码:
If !Empty(This.Value)
Thisform.list1.RowSource=Null
Select 名称 From 商品名 Where Alltrim(This.Value)$拼音简码 Into Cursor t1 Order By 名称
Thisform.list1.RowSourceType=6
Thisform.list1.RowSource="t1.名称"
If Reccount('t1')>0
Thisform.List1.ListItemId=1
Thisform.List1.Visible=.T.
Else
Thisform.List1.Visible=.F.
Endif
Else
Thisform.List1.Visible=.F.
Endif
[解决办法]
Text+List查询或ComboBox组合框
http://download.csdn.net/detail/apple_8180/4261082

热点排行