0
Public Class Form1
Dim intTicketChoice As Integer
Dim finalCost As Decimal
Dim cost As Decimal
Dim seatType As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Threading.Thread.Sleep(5000)
End Sub
Private Sub cboTypeOfTicket_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboTypeOfTicket.SelectedIndexChanged
intTicketChoice = Me.cboTypeOfTicket.SelectedIndex
Me.ListBox1.Items.Clear()
EnableObjects()
Select Case intTicketChoice
Case 0
SingleGame(seatType)
Case 1
Season(seatType)
End Select
End Sub
Sub EnableObjects()
lblNumTickets.Visible = True
txtNumOfTickets.Visible = True
lblSeatType.Visible = True
ListBox1.Visible = True
lblAnswerText.Visible = False
lblCost.Visible = False
btnClear.Visible = True
btnCompute.Visible = True
End Sub
Private Sub SingleGame(ByVal seatType As Integer)
Me.ListBox1.Items.Add("Box Seats $55")
Me.ListBox1.Items.Add("Lower Deck Seats $35")
Me.ListBox1.Items.Add("Upper Deck Seats $25")
Me.ListBox1.Items.Add("Standing Room Only $15")
If ListBox1.SelectedItem = "Box Seats $55" Then
seatType = 0
ElseIf ListBox1.SelectedItem = "Lower Deck Seats $35" Then
seatType = 1
ElseIf ListBox1.SelectedItem = "Upper Deck Seats $25" Then
seatType = 2
ElseIf ListBox1.SelectedItem = "Standing Room Only $15" Then
seatType = 3
End If
End Sub
Private Sub Season(ByVal seatType As Integer)
Me.ListBox1.Items.Add("Box Seats $2500")
Me.ListBox1.Items.Add("Lower Deck Seats $1500")
If ListBox1.SelectedItem = "Box Seats $2500" Then
seatType = 4
Elseif ListBox1.SelectedItem = "Lower Deck Seats $1500" Then
seatType = 5
End If
End Sub
Private Sub btnCompute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCompute.Click
Dim ticketNum As Integer
ticketNum = Convert.ToInt32(txtNumOfTickets.Text)
intTicketChoice = cboTypeOfTicket.SelectedIndex
Dim totalCost As Decimal = GetGameCost(ticketNum)
Try
ticketNum = Convert.ToInt32(txtNumOfTickets.Text)
Catch Exception As FormatException
MsgBox("Number of tickets must be numeric")
Return
End Try
'Display cost:
lblAnswerText.Visible = True
Me.lblCost.Text = totalCost.ToString("C")
lblCost.Visible = True
End Sub
Private Function GetGameCost(ByVal ticketNum As Integer)
If seatType = 0 Then
finalCost = (ticketNum * 55D)
ElseIf seatType = 1 Then
finalCost = (ticketNum * 35D)
ElseIf seatType = 2 Then
finalCost = (ticketNum * 25D)
ElseIf seatType = 3 Then
finalCost = (ticketNum * 15D)
ElseIf seatType = 4 Then
finalCost = (ticketNum * 2500D)
ElseIf seatType = 5 Then
finalCost = (ticketNum * 1500D)
End If
Return finalCost
End Function
嗨,大家好,我卡在我的VB的功课。我是新手,所以不要把我撕成碎片,嘿嘿。无论如何,每次我尝试计算,它似乎给我55 * ticketnum而不是查找实际的seatType并使用那个。我在这里看到关于同样问题的另一个问题,但找不到我确切问题的答案。
任何想法或建议?
我用byRef取代了byVal,我仍然有同样的问题。我决定只是删除byref和val的,我想应该有一个Me.seatType在某个地方?但我不知道在哪里......感谢TON帮助btw! – sparkey