厦门英才学校教师待遇:组合框和文本框的关系

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 14:21:28

我提的问题焦点是:能否让键盘上的上下箭头键对表单上的列表框起作用的情况下,而表单上的文本框一直保持光标不离开可随时输入字母。 
我设计的表单上的列表框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