大学のプロジェクトとして、ユーザーが劇場の座席を予約できるようにするプログラムを作成しています。ユーザーがクリックして座席を予約できる一連の画像ボックスが特徴です。画像ボックス内の画像は、押すたびに赤と緑の間で変化します(緑の場合、クリックすると赤になるなど)。
関数 DecisionEnable に関しては、値 SeatNo は有効な配列内の座席を表します。この値は各ボックスに固有です (座席 A1 の場合、seatno は 1 です)。この値は、同じボックスに対して同じである必要があります。シートシリアルは、各ピクチャボックス (a1、a2、a3、a4、a5 など) に付けられた名前です。
最初の 5 席のコードのみを投稿しました。これにより、私が何を求めているかについての一般的な考えが得られるはずです。
私が求めているのは、ピクチャボックスのすべてのクリックイベントをどのように「圧縮」できるかということです。そのため、「DetermineEnable」関数を 50 回以上呼び出すのではなく、1 回または 2 回呼び出すだけで済みます。
どうもありがとう!
' /// VISUAL AND INTERACTIVE DISPLAY
Sub DetermineEnable(ByVal SeatNo As Integer, ByVal SeatSerial As PictureBox)
If Enabled(SeatNo) = True Then
Enabled(SeatNo) = False
TotalCustomers = TotalCustomers - 1
ElseIf Enabled(SeatNo) = False Then
Enabled(SeatNo) = True
TotalCustomers = TotalCustomers + 1
End If
PictureLocation(SeatNo, SeatSerial)
UpdateEverything()
End Sub
Function PictureLocation(ByVal SeatNo As Integer, ByVal Picturebox As PictureBox) As String
If Enabled(SeatNo) = True Then
PictureLocation = "C:\Users\Wallace\Desktop\Theatre_Booking_System\enabled.png"
Else
PictureLocation = "C:\Users\Wallace\Desktop\Theatre_Booking_System\disabled.png"
End If
Picturebox.ImageLocation = PictureLocation
End Function
Private Sub a1_Click(sender As System.Object, e As System.EventArgs) Handles a1.Click
DetermineEnable(1, a1)
End Sub
Private Sub a2_Click(sender As System.Object, e As System.EventArgs) Handles a2.Click
DetermineEnable(2, a2)
End Sub
Private Sub a3_Click(sender As System.Object, e As System.EventArgs) Handles a3.Click
DetermineEnable(3, a3)
End Sub
Private Sub a4_Click(sender As System.Object, e As System.EventArgs) Handles a4.Click
DetermineEnable(4, a4)
End Sub
Private Sub a5_Click(sender As System.Object, e As System.EventArgs) Handles a5.Click
DetermineEnable(5, a5)
End Sub