让文本框保持光标不离开

文本框(TextBox) | 2015-11-30 09:46:37 | 阅读 1636 次 | 评论(0)
PUBLIC oform1

oform1=NEWOBJECT("form1")
oform1.Show
RETURN
DEFINE CLASS form1 AS form


    DoCreate = .T.
    Caption = "Form1"
    Name = "Form1"


    ADD OBJECT text1 AS textbox WITH ;
        Height = 20, ;
        Left = 72, ;
        Top = 36, ;
        Width = 100, ;
        Name = "Text1"


    ADD OBJECT list1 AS listbox WITH ;
        Height = 170, ;
        Left = 72, ;
        Top = 60, ;
        Width = 100, ;
        Name = "List1"


    PROCEDURE Init
        This.KeyPreview=.T.
        This.List1.Visible=.F.
        CREATE CURSOR tt (a1 c(10))
        INSERT INTO tt VALUES ("abcde")
        INSERT INTO tt VALUES ("xycde")
        INSERT INTO tt VALUES ("abcxy")
        INSERT INTO tt VALUES ("cdeab")
    ENDPROC


    PROCEDURE 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
    ENDPROC


    PROCEDURE text1.GotFocus
        This.Tag='1'
    ENDPROC


    PROCEDURE text1.LostFocus
        Thisform.List1.Visible=.F.
        This.Tag=''
    ENDPROC


    PROCEDURE text1.InteractiveChange
        If !Empty(This.Value)
            Thisform.list1.RowSource=Null
            Select a1 From tt Where Alltrim(This.Value)$a1 Into Cursor t1 Order By a1
            Thisform.list1.RowSourceType=6
            Thisform.list1.RowSource="t1.a1"
            If Reccount('t1')>0
                Thisform.List1.ListItemId=1
                Thisform.List1.Visible=.T.
            Else
                Thisform.List1.Visible=.F.
            Endif
        Else
            Thisform.List1.Visible=.F.
        Endif
    ENDPROC


ENDDEFINE
*
文章评论,共0条
游客请输入验证码
浏览234488次
最新评论
  • cstdio:ooooooo
  • sdta:从VFP入手也不错
  • yuanhouwen:尊敬的sdta大神:作为一个编程外行,看到你关于操控EXCEL的编程程序我觉得特别神奇,想向你...