用多个结果填充多个组合框

时间:2019-11-18 17:53:02

标签: vb.net datatable combobox bindingsource

我有五个组合框,需要填充与每个组合框中插入的文本相关的项。

如何重用相同的函数来填充多个组合框,使其在DataTable中具有不同的结果?

Private Sub Search()

    Dim adp As SqlDataAdapter = New SqlDataAdapter("select stage from sample where stage like '%" + ComboBox1.Text + "%'", connection)

    Dim table As New DataTable
    adp.Fill(table)

    ComboBox1.DataSource = New BindingSource(table, Nothing)
    ComboBox1.DisplayMember = "stage"
End Sub

Private Sub ComboBox1_PreviewKeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles ComboBox1.PreviewKeyDown
        If e.KeyCode = Keys.Tab Then
            Search()
        End If
    End Sub

1 个答案:

答案 0 :(得分:1)

创建一个工作如下的函数:

<div class="container-fluid background" >
  <div class="row" id='top_part'>
    <div class="col-6" >

      <div class="d-flex text-center justify-content-center align-items-baseline">
        <h1>bla bla<br/>bla bla</h1>
      </div>
      <div class="d-flex justify-content-center">
        <button type="button" class="btn btn-primary"><h4></h4></button>
      </div>
    </div>
    
    <div class="col-6">
      <img class="img-fluid" src="images/krabicka.png" alt="">
    </div>
  </div>
  
  <div class="row" id='top_part'>
    <div class="col-12 text-center">
      <h2>bla bla</h2>
    </div>
  </div>


  <div class="row" id='top_part'>
    <div class="col-4">
      <div class="d-flex justify-content-center" id='lock_gear_heart'>
        <img src="images/lock80px.png" alt="">
      </div>
      <div class="d-flex justify-content-center" id='text_lock'>
        <h5>bla bla</h5>
      </div>
    </div>

    <div class="col-4">
      <div class="d-flex justify-content-center" id='lock_gear_heart'>
        <img src="images/gears80px.png" alt="">
      </div>
      <div class="d-flex justify-content-center" id='text_lock'>
        <h5>bla bla</h5>
      </div>
    </div>

    <div class="col-4">
      <div class="d-flex justify-content-center" id='lock_gear_heart'>
        <img src="images/heart80px.png" alt="">
      </div>
      <div class="d-flex justify-content-center" id='text_lock'>
        <h5>bla bla</h5>
      </div>
    </div>

  </div>
</div>  

然后您将这样调用此函数:

Public Sub BindComboBox(ByRef cboBox As ComboBox, ByVal sSQL As String, ByVal sFieldNameOfReturnValue As String, ByVal sFieldNameOfDisplayText As String)
    Try
        Dim adp As SqlDataAdapter = New SqlDataAdapter(sSQL, connection)
        Dim dtAllData As New DataTable
        adp.Fill(dtAllData)

        Dim xBindingContext As New BindingContext
        With cboBox
            .BindingContext = xBindingContext
            .DataSource = dtAllData

            .ValueMember = sFieldNameOfReturnValue.ToUpper
            .DisplayMember = sFieldNameOfDisplayText.ToUpper
        End With
    Catch Exp As Exception
        'Handle exceptions here
    End Try
End Sub