【发布时间】:2018-08-20 21:25:26
【问题描述】:
我目前的 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
【问题讨论】:
-
您确实需要向我们展示您尝试过的代码,而不是描述它。这样,人们就有机会纠正你的错误。
-
一方面,由于文本框只能存储文本,不能存储数字,这意味着如果您不能使用 vars,您将有更复杂的表达式将文本转换为数字。另一方面,有什么问题?如果用户在文本框中输入
300,无论您的代码在哪里 -
您是否有附加到
Button的Click事件的事件处理程序?那将是根据表单控件的状态执行计算的地方。至于如何在不使用变量的情况下保留用户输入的费率值,是否可以只使用单独的只读文本框来显示最终计算的值? -
代码添加在上面,对于疏忽感到抱歉,因为我的教授说这都是错误的,我认为这没有帮助。
-
把
Option Strict On放在你的代码文件的顶部,你会看到代码不会编译。