2

VB.NET Winforms 应用程序...当用户开始在应用程序的搜索框中键入时,它会自动使用有效结果填充名称列表下拉框,并将下拉值设置为 true... 一切正常,除了以下事实用户被迫从名称列表中选择一个值或按 esc 键,因为如果不这样做,鼠标光标就会消失,您必须将鼠标一直移到应用程序之外才能返回,它只会这样做在应用程序之外..下面是我为此使用的代码,应该注意的是,我在应用程序的其他地方使用下拉值,并且这些实例都没有问题,只有这个......任何想法???

     Private Sub u_lastName_Box_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles u_lastName_Box.TextChanged
    u_nameLook_Box.Items.Clear()
    Dim TenList As New List(Of tenant)
    Dim x As List(Of tenant) = db.tenants.Where(Function(f) f.last_name.Contains(u_lastName_Box.Text) AndAlso f.propertyId = selectedProperty).OrderBy(Function(f) f.last_name).ToList
    For Each _ten In x
        Dim c = _ten
        u_nameLook_Box.Items.Add(Convert.ToString(c.Occupantid) + " -- " + c.last_name + "," + c.first_name)
    Next

    RemoveHandler u_nameLook_Box.DropDown, AddressOf u_nameLook_Box_DropDown
    u_nameLook_Box.DroppedDown = True
    AddHandler u_nameLook_Box.DropDown, AddressOf u_nameLook_Box_DropDown
End Sub
4

2 回答 2

2

我遇到了同样的问题,我解决了它“更新”鼠标状态,

ComboBoxClients.DroppedDown = True

Cursor.Current = Cursors.Default
于 2016-01-10T19:37:32.653 回答
1

在考虑了一夜之后,我实际上刚刚解决了这个问题。我尝试了没有骰子的 cursor.show ......我想了更多,并决定在 cursor.show 之前设置光标样式现在可以工作了...我的更新代码如下...关于光标样式和可见性如何或为什么首先发生更改存在一些问题...

     Private Sub u_lastName_Box_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles u_lastName_Box.TextChanged
    u_nameLook_Box.Items.Clear()
    If Not u_lastName_Box.Text.Length < 1 Then
        Dim TenList As New List(Of tenant)
        Dim x As List(Of tenant) = db.tenants.Where(Function(f) f.last_name.Contains(u_lastName_Box.Text) AndAlso f.propertyId = selectedProperty).OrderBy(Function(f) f.last_name).ToList
        For Each _ten In x
            Dim c = _ten
            u_nameLook_Box.Items.Add(Convert.ToString(c.Occupantid) + " -- " + c.last_name + "," + c.first_name)
        Next


        RemoveHandler u_nameLook_Box.DropDown, AddressOf u_nameLook_Box_DropDown
        u_nameLook_Box.DroppedDown = True
        Me.Cursor = Cursors.Default
        Cursor.Show()
        AddHandler u_nameLook_Box.DropDown, AddressOf u_nameLook_Box_DropDown
    Else
        u_lookup_boxes_fill()
    End If

End Sub 
于 2012-06-08T11:15:10.390 回答