我有五个组合框,需要填充与每个组合框中插入的文本相关的项。
如何重用相同的函数来填充多个组合框,使其在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
答案 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