0

座席を表す多数のボタンを使用した座席予約システムを設計しています。各座席の詳細はテキスト ファイルに 1 行として保存されるため、各座席はテキスト ファイルの特定の行に対応します。テキスト ファイルの各行には、「シート」/ボタンが使用可能かどうかを判断する「True」または「False」という単語が含まれています。

フォームが読み込まれるとすぐに、プログラムがテキスト ファイルをスキャンする方法があったかどうか疑問に思っています。次に、「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
4

1 に答える 1

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

その単語がファイル内のどこかにある場合、これは True を返すことに注意してください。特定の行の単語を探している場合は、.ReadLineメソッドを使用して、探している行を指定する必要があります

于 2013-08-23T14:02:03.487 に答える