2013-08-23 106 views
0

我正在設計一個座位預約系統,使用多個按鈕來表示座位。每個座位的詳細信息都以單行形式存儲在文本文件中,以便每個座位都對應於文本文件中的特定行。在文本文件的每一行中都包含「True」或「False」字樣,以確定「座位」/按鈕的可用性。如何使用文本文件更改加載按鈕的顏色。 [Visual Basic 2010]

我想知道是否有方法讓程序在窗體加載後立即掃描文本文件。然後,當它找到一個包含'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和bronzebuttons_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 

回答

0

加載窗體時,您正在閱讀的文本文件的內容:

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 

注意,這將返回真,如果這個詞是任何地方的文件中。如果您正在查找特定行中的單詞,則需要使用.ReadLine方法並指定要查找的行。

相關問題