如何在 vb.net 中自动完成 TextBox 后调用 Keydown TextBox [已关闭]

How to call Keydown TextBox after AutoComplete TextBox in vb.net [closed]

提问人:siwa86 提问时间:9/26/2023 更新时间:9/26/2023 访问量:63

问:


想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。

7天前关闭。

如何在 vb.net 中自动完成 TextBox 后调用 Keydown TextBox。

从“自动完成”文本框中进行选择后,我按以确保代码产品是否在数据库中,但是在我从“自动完成文本框”中选择适当的代码后,问题就出现了,然后按Enter键,然后出现所有消息框。我的代码有问题吗?

谢谢

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 Using conn = New OleDbConnection(connectionString)
            conn.Open()
            resultList = conn.Query(Of Items)("SELECT * FROM Items").ToList()
            TextBox1.AutoCompleteMode = AutoCompleteMode.Suggest
            TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
            TextBox1.AutoCompleteCustomSource.AddRange(resultList.Select(Function(n) n.CODEPRODUCT).ToArray())
  conn.Close()
        End Using
    End Sub
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown   
    Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.Enter Then
            Using conn = New OleDbConnection(connectionString)
                conn.Open()
                resultList = conn.Query(Of Items)("SELECT CODEPRODUCT FROM Items WHERE '" + TextBox1.Text + "'").ToList()
                conn.Close()
                MsgBox("Not Found product code...")
                Return
            End Using
        End If
    End Sub

vb.net 自动完成 文本框 Dapper

评论

0赞 Jimi 9/26/2023
中的查询是错误的,如果结果列表为空,则只想显示消息框 -- 为什么不使用 ComboBox 而不是 TextBox?在这种情况下,已经是一个对象,因此您无需重新查询TextBox1_KeyDownSelectedItemItems
0赞 siwa86 9/26/2023
@Jimi,为空且不在数据库中,则将出现一个消息框。 使用文本框是否可以阻止用户并仅在数据库中进行选择? 请指导我you only want to show a messagebox if the resulting list is empty Why are you not using a ComboBox instead of a TextBox?In that case, the SelectedItem is already an Items object, so you don't need to re-query

答: 暂无答案