我目前的VB作业要求我们构建一个简单的表格(在Visual Studio 2015中),以计算酒店的租金。用户在文本框中键入一个数值,然后根据存在或不存在的其他因素,当他们单击表单上的按钮以执行时,实际租金将显示在标签中。窗体上的控件是用于用户输入的文本框或组合框,它们会影响速率。例如,用户可能输入300作为基本租金,但是如果他们也选中了“早餐”框,则他们每晚要多付15,因此当他们单击时,输出标签中将显示315的租金值。执行。
复杂之处在于我们不能使用任何变量。当用户单击“执行”以确定标签中显示的最终值时,我们只能使用表单中存在的值。那么,如何不使用变量就将按钮的单击与“查看所有这些复选框和组合框并使用它们来修改文本框中的值”的命令绑定在一起呢?
我尝试使用if语句,但是每次单击任何东西时,数字都会增加。如何使代码仅查看单击按钮时表单所处的确切状态,然后使用该表单状态来修改用户已经输入的值?
根据要求,这是我的代码,但是我的教授说这完全是错误的,请完全重新考虑并重新开始。
Public Class frmJMtest_hl
Private Sub btnCalcRent_Click(sender As Object, e As EventArgs) Handles btnCalcRent.Click
If cboBuilding.Text = "High End" Then txtRent.Text = txtRent.Text + 210
If chkBreakfast.Checked = True Then txtRent.Text = txtRent.Text + 65
If chkBalcony.Checked = True Then txtRent.Text = txtRent.Text + 120
If chkNoSmoking.Checked = True Then txtRent.Text = txtRent.Text - 15
lblResults.Text = txtRent.Text
End Class
答案 0 :(得分:1)
与其根据各种条件修改txtRent
,然后将该值复制到lblResults
,而是先将该值复制到lblResults
,然后再修改{{ 1}},根据这些条件:
lblResults
Private Sub btnCalcRent_Click(sender As Object, e As EventArgs) Handles btnCalcRent.Click
lblResults.Text = txtRent.Text
If cboBuilding.Text = "High End" Then lblResults.Text = lblResults.Text + 210
If chkBreakfast.Checked = True Then lblResults.Text = lblResults.Text + 65
If chkBalcony.Checked = True Then lblResults.Text = lblResults.Text + 120
If chkNoSmoking.Checked = True Then lblResults.Text = lblResults.Text - 15
End Sub
从未修改过,因此保留了用户输入的值。
(如果这是C#,则需要对整数进行强制转换,我不确定以上内容是否可以在VB.NET中使用,但这只是对提供的代码进行了重新设计。)>