私はVBには新しく、売り出し枚数を計算するための電卓を作ろうとしています。私はdblAdultTicketsSoldとdblChildTicketsSoldに10進数を入れることができない場所にする必要があります。私は今では負の数を許さず、数値しか許さないという制限があります。私はどんな助けにも感謝します。VBのテキストボックス入力から小数点以下を保持する方法
ます。Private SubのButton1 Click(オブジェクトとして送信者、EventArgsのようe)は、キーボードを使用して押したときbtnCalculate.Clickが
''Declare local variables
Dim decAdultPricePerTicket As Decimal
Dim dblAdultTicketsSold As Double
Dim decGrossAdultSalesTotal As Decimal
Dim decChildPricePerTicket As Decimal
Dim dblChildTicketsSold As Double
Dim decGrossChildSalesTotal As Decimal
Dim decGrossSalesTotal As Decimal
Dim decNetAdultSalesTotal As Decimal
Dim decNetChildSalesTotal As Decimal
Dim decNetTotalSales As Decimal
'Put backcolor back to white after it turns yellow
txtAdultPricePerTicket.BackColor = Color.White
txtAdultTicketsSold.BackColor = Color.White
txtChildPricePerTicket.BackColor = Color.White
txtChildTicketsSold.BackColor = Color.White
' Validate Inputs
Try
'Validate Adult Price Per Ticket is positive numeric
If IsNumeric(txtAdultPricePerTicket.Text) Then
decAdultPricePerTicket = CDec(txtAdultPricePerTicket.Text)
Else
MessageBox.Show("Please enter a positive numeric value for Price per Adult Ticket.")
txtAdultPricePerTicket.Focus()
txtAdultPricePerTicket.BackColor = Color.Yellow
Exit Sub
End If
If decAdultPricePerTicket < 1 Then
MessageBox.Show("Please enter a positive numeric value for Price per Adult Ticket.")
txtAdultPricePerTicket.Focus()
txtAdultPricePerTicket.BackColor = Color.Yellow
Exit Sub
End If
'Validate amount of Adult tickets with positive numeric
If IsNumeric(txtAdultTicketsSold.Text) Then
dblAdultTicketsSold = CDbl(txtAdultTicketsSold.Text)
Else
MessageBox.Show("Please enter a positive numeric value for amount for Adult Tickets Sold.")
txtAdultTicketsSold.Focus()
txtAdultTicketsSold.BackColor = Color.Yellow
Exit Sub
End If
If dblAdultTicketsSold < 1 Then
MessageBox.Show("Please enter a positive numeric value for amount for Adult Tickets Sold.")
txtAdultTicketsSold.Focus()
txtAdultTicketsSold.BackColor = Color.Yellow
Exit Sub
End If
'Validate Child Price per Tickets is a positive numeric
If IsNumeric(txtChildPricePerTicket.Text) Then
decChildPricePerTicket = CDec(txtChildPricePerTicket.Text)
Else
MessageBox.Show("Please enter a positive numeric value for Price per Child Ticket.")
txtChildPricePerTicket.Focus()
txtChildPricePerTicket.BackColor = Color.Yellow
Exit Sub
End If
If decChildPricePerTicket < 1 Then
MessageBox.Show("Please enter a positive numeric value for Price per Child Ticket.")
txtChildPricePerTicket.Focus()
txtChildPricePerTicket.BackColor = Color.Yellow
Exit Sub
End If
'Validate amount of child tickets with positive numeric
If IsNumeric(txtChildTicketsSold.Text) Then
dblChildTicketsSold = CDbl(txtChildTicketsSold.Text)
Else
MessageBox.Show("Please enter a positive numeric value for amount of Child Tickets.")
txtChildTicketsSold.Focus()
txtChildTicketsSold.BackColor = Color.Yellow
Exit Sub
End If
If dblChildTicketsSold < 0 Then
MessageBox.Show("Please enter a positive numeric value for amount of Child Tickets.")
txtChildTicketsSold.Focus()
txtChildTicketsSold.BackColor = Color.Yellow
Exit Sub
End If
'Calculate and display GrossAdultSalesTotal
decGrossAdultSalesTotal = CDec(CDec(txtAdultPricePerTicket.Text) * CDbl(txtAdultTicketsSold.Text))
lblGrossAdultSalesTotal.Text = decGrossAdultSalesTotal.ToString("c")
'Calculate and display GrossChildSalesTotal
decGrossChildSalesTotal = CDec(CDec(txtChildPricePerTicket.Text) * CDbl(txtChildTicketsSold.Text))
lblGrossChildSalesTotal.Text = decGrossChildSalesTotal.ToString("c")
'Calculate total gross sales
decGrossSalesTotal = decGrossAdultSalesTotal + decGrossChildSalesTotal
lblGrossTotalSales.Text = decGrossSalesTotal.ToString("c")
'Calculate Net adult ticket sales 20%
decNetAdultSalesTotal = CDec(0.2 * decGrossAdultSalesTotal)
lblNetAdultSalesTotal.Text = decNetAdultSalesTotal.ToString("c")
'Calculate Net child ticket sales 20%
decNetChildSalesTotal = CDec(0.2 * decGrossChildSalesTotal)
lblNetChildSalesTotal.Text = decNetChildSalesTotal.ToString("c")
'Calculate Net total of adult and child tickets
decNetTotalSales = decNetChildSalesTotal + decNetAdultSalesTotal
lblNetTotalSales.Text = decNetTotalSales.ToString("c")
Catch
'Error Message
MessageBox.Show("All inputs must be valid positive numeric values")
End Try
End Sub
これはWinformsアプリですか? – Steve
NumericUpDown – Plutonix
の方が使いやすいかもしれません。すでに検証済みです。それは動作しますか? –