VB 2015:基于表单状态进行计算,无变量

时间:2018-08-20 21:25:26

标签: vb.net winforms

我目前的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

1 个答案:

答案 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中使用,但这只是对提供的代码进行了重新设计。)