16,554
社区成员
发帖
与我相关
我的任务
分享
'根据传入的数据为ListBox加载数据
Private Sub Load_ListProName(ByVal str_txt As String)
Dim strSql As New System.Text.StringBuilder
'如果没有数据则不加载
If str_txt.Trim = "" Then Exit Sub
Try
Using conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.\PadicalDb.accdb")
conn.Open()
Using comm As New OleDb.OleDbCommand
strSql.Length = 0
strSql.Append("Select DISTINCT(cPRODUCT_NAME_NOW) from MST_PRODUCT")
strSql.Append(" WHERE cPRODUCT_NAME_NOW LIKE '")
strSql.Append(str_txt.Trim)
strSql.Append("%' ORDER BY cPRODUCT_NAME_NOW")
comm.Connection = conn
comm.CommandText = strSql.ToString
Dim drInfo As OleDb.OleDbDataReader = comm.ExecuteReader
'为ListBox添加列
ListProName.Items.Clear()
If drInfo.Read Then
PnlListProName.Visible = True
ListProName.Items.Add(drInfo("cPRODUCT_NAME_NOW"))
Else
'MsgBox("此产成品不存在,请联系管理人员添加到数据库!")
PnlListProName.Visible = False
Exit Sub
End If
While drInfo.Read
ListProName.Items.Add(drInfo("cPRODUCT_NAME_NOW"))
End While
'ListProName.SelectedIndex = 0
End Using
End Using
Catch ex As Exception
MsgBox(ex.ToString())
End Try
End Sub
下面是TextChanged事件
Private Sub TxtProName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtProName.TextChanged
'如果不是上下键触发的TextChange
If g_bool_isUpDown = False Then
Load_ListProName(TxtProName.Text.Trim)
End If
End Sub
下面这个 是Combbox的事件
'listbox的selectindex发生变化就将其填入产品名称中,并屏蔽其TextChanged事件
Private Sub ListProName_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListProName.SelectedIndexChanged
g_bool_isUpDown = True
TxtProName.Text = ListProName.SelectedItem.ToString
TxtProName.SelectionStart = Len(ListProName.SelectedItem.ToString)
g_bool_isUpDown = False
End Sub
还有几个事件,屏蔽按键的,或者是转化事件的(比如在textBox中按上下键,ListBox中选中行发生变化)