做一个登陆框以后,当在用户名框中输入用户名时出现以前曾经登陆过的用户名,比如输入A时,下面出现
A,AB,ABC,而输入AB时候,出现AB,ABC,而双击登陆框时,下拉出现最近几次登陆的用户名.如何实现?

解决方案 »

  1.   

    FORM2.0里面的COMBOBOX控件能实现,你打A自动列出下面有的AB,ABC功能,不过不推荐使用,
    你可以把所有曾经登陆过的用户存起来,在KEYDOWN事件里写代码,可以用INSTR函数作比较,
    如果有,用一个LISTVIEW显示
      

  2.   

    窗体上放一个TextBox,一个ListBoxDim username(10) As String
    Dim i As IntegerPrivate Sub Form_Load()
    List1.Visible = False
    username(0) = "ABC"
    username(1) = "BBD"
    username(2) = "SSR"
    username(3) = "AQDF"
    username(4) = "SFDER"
    username(5) = "VDSR"
    username(6) = "STRG"
    username(7) = "BSDFD"
    username(8) = "CDFEFWE"
    username(9) = "CASD"
    username(10) = "SDFEF"
    End SubPrivate Sub List1_KeyUp(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Or KeyCode = 32 Then
        Text1.Text = List1.List(List1.ListIndex)
        Text1.SelStart = Len(Text1.Text)
        List1.Visible = False
    End If
    End SubPrivate Sub List1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        Text1.Text = List1.List(List1.ListIndex)
        List1.Visible = False
    End If
    End SubPrivate Sub Text1_Change()
    List1.Clear
    For i = 0 To 10
        If LCase(Left(username(i), Len(Text1.Text))) = LCase(Text1.Text) Then
            List1.AddItem username(i)
        End If
    Next
    List1.Visible = False
    If List1.ListCount > 0 Then
        List1.Move Text1.Left, Text1.Top + Text1.Height, Text1.Width
        List1.Visible = True
    End If
    End SubPrivate Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
    If KeyCode = 40 And List1.Visible Then
        List1.SetFocus
        List1.ListIndex = 0
    End If
    End Sub