我是VB新手,我试图用计算器计算出售门票的数量。我需要在dblAdultTicketsSold和dblChildTicketsSold中放置小数点。我现在有限制,不会允许负数,只会允许数字。我感谢任何帮助。如何在VB中保留文本框输入中的小数
私人小组的button1_Click(发送者为对象,例如作为EventArgs的)把手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
我想你已经完成了验证。它工作吗? –