Vb.net VB 2015:基于表单状态计算,无变量

Vb.net VB 2015:基于表单状态计算,无变量,vb.net,winforms,Vb.net,Winforms,我目前的VB作业要求我们在Visual Studio 2015中构建一个简单的表单,用于计算酒店的租金。用户在文本框中键入一个数值,然后根据存在或不存在的其他因素,当用户单击表单上的按钮执行时,实际租金将显示在标签中。表单上的控件是用于用户输入的文本框或组合框,它们会影响速率。例如,用户可能输入300作为基本租金,但如果他们也选中了早餐框,他们每晚多付15英镑,因此当他们单击执行时,输出标签中将显示315英镑的租金值 复杂的是我们不能使用任何变量。我们只能在用户单击“执行”确定标签中显示的最终值

我目前的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
与其根据各种条件修改txtRent,然后将该值复制到lblResults,不如先将该值复制到lblResults,然后根据这些条件修改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
txtRent永远不会被修改,因此会保留用户输入的值


如果这是C,则需要对整数进行一些转换,我不确定上面的内容在VB.NET中是否有效,但这只是对提供的代码的修改。

您确实需要向我们展示您尝试过的代码,而不是描述它。这样,人们就有机会纠正您的错误。一方面,由于文本框只能存储文本,而不能存储数字,这意味着如果您不能使用变量,您将有更复杂的表达式从文本转换为数字。另一方面,有什么问题?如果用户在文本框中键入300,那么无论您的代码在哪里,它都会存在。您是否有一个事件处理程序附加到按钮的单击事件?这将是根据窗体控件的状态执行计算的地方。至于如何在不使用变量的情况下保留用户为费率输入的值,您可以使用单独的只读文本框来显示最终计算值吗?上面添加了代码,抱歉疏忽,因为我的教授说这是完全错误的,所以我不认为这会有帮助。在代码文件的顶部加上Option Strict,你会看到代码不会编译。非常感谢你,培根!这似乎解决了我的问题。没有意识到这一点,我真的很傻,但我真的很感谢你的帮助。@Sinistar请接受这个答案,并在答案左边打勾。这是感谢海报的最好方式。