如何在 VB 中筛选组合框值

  • 本文关键字:组合 筛选 VB combobox
  • 更新时间 :
  • 英文 :


我是VB的新手。我有一个政策编号。VB中的组合框,在我输入保单号的前四位数字后填充。但是,如果我继续键入数字,它会覆盖我已经键入的内容并清除下拉列表,就像选择我键入的新 4 个数字一样。我想实现一个场景,即当我继续输入策略时,我将输入前 4 个数字以填充下拉列表,没有搜索下拉列表中的值。

例如:保单编号:969003648,当我键入 9690 时,下拉菜单中填写了从 969000001 开始的策略编号,现在当我继续将值键入为 969003 等时,搜索的值仅限于策略编号969003作为起始值...请协助

我的代码:

Private Sub PolicyNo_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 46 Or KeyCode = 8 Then
Me.PolicyNo.value = ""
Else
If Len(Me.PolicyNo.Text) >= 4  Then
Me.PolicyNo.RowSource = ""
Call ReloadPolicyNo(Nz(Me.PolicyNo.Text, ""))
Function ReloadPolicyNo(sPolicyNo As String)
Me.PolicyNo.RowSource = "SELECT Inventory.PolicyNo FROM Inventory " & _
                          "WHERE Left(Inventory.PolicyNo," & Len(Me.PolicyNo.Text) & ")  = '" & Me.PolicyNo.Text & "' order by Inventory.PolicyNo"
End Function

为什么不使用组合框上的 Textchanged 事件来获取组合框中当前的内容?

    'THIS FIRES WHEN TEXT IS ENTERED INTO THE COMBOBOX
Private Sub ComboBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.TextChanged
    'GET VALUE IN COMBOBOX
    Dim enteredText As String = ComboBox1.Text
    Dim strSelect As String = "select * from table where field like = '" & enteredText & "'%"
    'load COMBO BOX HERE
End Sub

最好在这里使用 DataView,我声明DataTableclass Variable

Dim dt as DataTable

从数据库中获取所有数据并将其绑定到声明的DataTable,这DataTable进一步添加到DataView并使用RowFilter来过滤DataViewCompay_Type是我DataTable中的列之一 下面的代码将过滤DataView并绑定数据,其中列Company_Type=1

            Dim dvComp As New DataView(dt)
            dvComp.RowFilter = "Company_Type=1"
            ComboBox1.DisplayMember = "CompanyName"
            ComboBox1.ValueMember = "CompanyID"
            ComboBox1.DataSource = dvComp

要删除过滤器,只需使用dvComp.RowFilter = Nothing

最新更新