我正在设计一个座位预订系统,使用许多按钮来代表座位。每个座位的详细信息以单行的形式存储在文本文件中,以便每个座位对应于文本文件中的特定行。在文本文件的每一行中包含“真”或“假”字样,以确定“座位”/按钮的可用性。
我想知道程序是否有办法在表单加载后立即扫描文本文件。然后,当它找到包含“True”的行时,它将相应的按钮变为红色并将其启用状态更改为 false。
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
lines = IO.File.ReadAllLines("seats.txt")
For Each b As Button In Me.Controls.OfType(Of Button)()
If b.FlatStyle = FlatStyle.Flat Then
Select Case b.BackColor
Case Color.Gold
SeatInfo.lblclass.Text = "Gold"
AddHandler b.Click, AddressOf goldbuttons_click
Case Color.Silver
SeatInfo.lblclass.Text = "Silver"
AddHandler b.Click, AddressOf silverbuttons_click
Case Color.DarkOrange
SeatInfo.lblclass.Text = "Bronze"
AddHandler b.Click, AddressOf bronzebuttons_click
End Select
End If
Next
End Sub
到目前为止,我只能做到当我单击按钮时颜色会发生变化(程序仅在我单击按钮后检查文本文件,而不是在程序启动时检查。)
下面的代码与 goldbuttons_click、silverbuttons_click 和 brownbuttons_click 类似。
Private Sub goldbuttons_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim btn As Button = DirectCast(sender, Button)
If lines(Array.IndexOf(Me.Controls.OfType(Of Button).Reverse.ToArray, sender)).Contains("True") Then
btn.BackColor = Color.Red
btn.Enabled = False
Else
Call Seatscreen()
SeatInfo.lblclass.Text = Name
End If
End Sub