创建一个类来保存你的房间数据。
Public Class Room
Public Property RoomNubmer As Integer
Public Property IsVacant As Boolean
Public Property Details As String
Public Sub New(RN As Integer, Vac As Boolean, Det As String)
RoomNubmer = RN
IsVacant = Vac
Details = Det
End Sub
Public Overrides Function ToString() As String
Return RoomNubmer.ToString
End Function
End Class
在表单中创建一个表单级别变量List(Of T),以便从表单中的任何位置都可以看到房间数据。
为了填写列表,我们首先连接到数据库并检索数据。接下来,循环遍历DataTable 行,创建一个新房间并将该房间添加到列表中。
Private ConStr As String = "Your connection string"
Private RoomList As New List(Of Room)
Private Function GetRoomData() As DataTable
Dim dt As New DataTable
Using cn As New SqlConnection(ConStr),
cmd As New SqlCommand("Select * From Rooms", cn)
cn.Open()
Using reader = cmd.ExecuteReader
dt.Load(reader)
End Using
End Using
Return dt
End Function
Private Sub FillRoomList()
Dim dt = GetRoomData()
For Each row As DataRow In dt.Rows
RoomList.Add(New Room(CInt(row(0)), CBool(row(1)), row(2).ToString))
Next
End Sub
在Form.Load 中,我们填写房间列表。然后制作一个按钮列表。假设两个列表的长度相同:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FillRoomList()
Dim ButtonList As New List(Of Button) From {Button1, Button2, Button3, Button4} 'etc
For i = 0 To ButtonList.Count - 1
ButtonList(i).Text = RoomList(i).ToString
If RoomList(i).IsVacant Then
ButtonList(i).BackColor = Color.Green
Else
ButtonList(i).BackColor = Color.Red
End If
Next
End Sub
如您所见,List(Of T) 就像一个裤子口袋,方便存放东西。在 List<T> Class 中了解更多信息。