Vba 如何在加载文本文件时更改按钮的颜色。[Visual Basic 2010]

Vba 如何在加载文本文件时更改按钮的颜色。[Visual Basic 2010],vba,button,colors,text-files,Vba,Button,Colors,Text Files,我正在设计一个座位预订系统,使用许多按钮来表示座位。每个座位的详细信息作为单行存储在文本文件中,以便每个座位对应于文本文件中的特定行。在文本文件的每一行中,包含单词“True”或“False”,以确定“seat”按钮的可用性 我想知道是否有一种方法可以让程序在加载表单后立即扫描文本文件。然后,当它发现一行包含“True”时,它将相应的按钮变为红色,并将其启用状态更改为false Private Sub Form1_Load(sender As System.Object, e As Sys

我正在设计一个座位预订系统,使用许多按钮来表示座位。每个座位的详细信息作为单行存储在文本文件中,以便每个座位对应于文本文件中的特定行。在文本文件的每一行中,包含单词“True”或“False”,以确定“seat”按钮的可用性

我想知道是否有一种方法可以让程序在加载表单后立即扫描文本文件。然后,当它发现一行包含“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\u click、silverbuttons\u click和bronzebuttons\u 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

加载表单时,您正在读取文本文件的内容:

lines=IO.File.ReadAllLines(“seats.txt”)

只需添加一个检查,查看文件中是否存在单词
True

lines = IO.File.ReadAllLines("seats.txt")
If Instr(1, lines, "True", vbBinaryCompare) > 0 Then
    'Change the button color :
    '
    '

Else:
    'in case you need to do something if True is not found:
    '
    '

End If
请注意,如果该单词位于文件中的任何位置,则返回True。如果要在特定行中查找单词,则需要使用
.ReadLine
方法并指定要查找的行