以下仅作参考:
我在Win2000下调试通过
建立Form1,添加Combo1,Label1
设置Form1的ScaleMode为 3 - Pixel
设置Timer1的Interval为100 '监视间隔Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End TypePrivate Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Dim Rt As RECT
Dim H As Long
Dim M As POINTAPIPrivate Sub Combo1_GotFocus()
Timer1.Enabled = True '开始监视
End Sub
Private Sub Form_Load()
For i = 0 To 100
Combo1.AddItem i
Next
H = Me.TextHeight("Xyz") '获得一行文本的高度
End SubPrivate Sub Timer1_Timer() '监视鼠标
If Screen.ActiveControl.Name <> "Combo1" Then Timer1.Enabled = False '焦点不在Combo1上时停止监视鼠标
GetWindowRect Combo1.hwnd, Rt '获取Combo1的屏幕位置
GetCursorPos M '获取鼠标位置Label1 = Combo1.List(Combo1.TopIndex + (M.y - Rt.Bottom) \ H)
'得到目标文本
End Sub'以上如果对您有帮助,请加分!

解决方案 »

  1.   

    '这个方法比较浪费啊
    Private Sub Form_Load()
    Dim i As Integer
        For i = 0 To 10
            Combo1.AddItem Str(i) & "行"
        Next
        Combo1.ListIndex = 2
        Text1.Text = Combo1.Text
        Timer1.Interval = 50
    End SubPrivate Sub Timer1_Timer()
        Text1.Text = Combo1.ListIndex
        Text2.Text = Combo1.List(Combo1.ListIndex)
    End Sub
      

  2.   

    '这个方法比较浪费啊
    Private Sub Form_Load()
    Dim i As Integer
        For i = 0 To 10
            Combo1.AddItem Str(i) & "行"
        Next
        Combo1.ListIndex = 2
        Timer1.Interval = 50
        Timer1.Enabled = False
    End SubPrivate Sub Combo1_GotFocus()
        Timer1.Enabled = True
    End Sub
    Private Sub Combo1_LostFocus()
        Timer1.Enabled = False
    End SubPrivate Sub Timer1_Timer()
        Text1.Text = Combo1.ListIndex
        Text2.Text = Combo1.List(Combo1.ListIndex)
    End Sub
      

  3.   

    ListIndex 属性就是获焦点的选项索引^-^
      

  4.   

    选中的项      Combo1.ListIndex
    选中项的文本  Combo1.List(Combo1.ListIndex)