我目前在vb.net 2013 express工作,后端有一个sql数据库。我有84个按钮,用于库存管理样式程序。这些按钮编号为M01,M02,... M12,T01,T02,...... T24,H01,H02,...... H24,以及P01,P02,...... P24。我需要循环浏览所有这些按钮以更改背景颜色或制作某种视觉信号以显示该单元格中是否存在某些内容。每个按钮都是前端显示屏上的一个单元格。我还将使用弹出窗口作为对话结果,并在每个按钮上使用sql命令,因此我不想在每个按钮中键入代码,而是使用循环。
我希望代码中包含for语句,然后循环遍历所有按钮,我猜我会使用按钮的名称作为循环描述。但是,我不知道如何获取按钮的名称并使用它来运行SQL查询以在sql数据库中找到该单元格。例如,我希望循环取一个按钮,拉出按钮的名称,并使用它也运行一个SQL查询返回,如果该单元格被采取,如果是这样,它是什么?我只是不知道如何获取名称并将其导入硬编码。
Try
Using conn1 As New SqlConnection(connstring)
conn1.Open()
For Each ctr In PanelButtons
If TypeOf ctr Is Button Then
Using comm1 As New SqlCommand("SELECT Shear FROM Production.dbo.tblFabWipLog WHERE LocID = @Cell", conn1)
comm1.Parameters.AddWithValue("@Cell", ctr.Name)
End Using
End If
Next
Using comm1 As New SqlCommand("SELECT ")
End Using
End Using
Catch ex As Exception
MsgBox("Error loading button clear or taken, please contact manufacturing engineering.")
MsgBox(ex.ToString)
End Try
答案 0 :(得分:1)
该按钮具有Tag属性。在每个按钮标签属性中设置项目的ID。
然后你只需要一个处理所有按钮的事件
Public Sub Form_Load(byVal o As Object, ByVal e As EventArgs) Handles Me.Load
' Load the tag information (this is a hardcoded example)
M01.Tag = "M01"
M02.Tag = "M02"
M03.Tag = "M03"
' ...
End Sub
Public Sub Button_Click(byVal o As Object, ByVal e As EventArgs) Handles M01.Click, M02.Click, ...
ProcessButton(CType(o, Button).Tag)
End Sub
Public Sub ProcessButton(ByVal itemId As String)
' ... Do what you need here
MessageBox.Show(itemId)
End Sub