这段代码背后的逻辑是什么以及它是如何工作的?

时间:2018-01-22 09:15:07

标签: .net vb.net

Public Class Form1

    Private Sub btn_Click(sender As Object, e As EventArgs) Handles btnZero.Click, btnTwo.Click, btnThree.Click, btnSix.Click, btnSeven.Click, btnOne.Click, btnNine.Click, btnFour.Click, btnFive.Click, btnEight.Click
        Dim btnNumber As Button = sender
        If lblResult.Text = ("0") Then
            lblResult.Text = btnNumber.Text
        Else
            lblResult.Text = lblResult.Text + btnNumber.Text
        End If
    End Sub

End Class

我正在研究一个简单的计算器,我不明白这个逻辑在这里是参考btw:https://www.youtube.com/watch?v=iMgTPKEFRMI

3 个答案:

答案 0 :(得分:0)

单击该按钮时,结果标签将重置为btnNumber的文本,或者btnNumber的文本将被追加。

答案 1 :(得分:0)

当`btnZero,btnTwo,btnThree,btnSix,btnSeven,btnOne,btnNine,btnFour,btnFive,btnEight'中的任何按钮时第一次单击,然后执行此块:

If lblResult.Text = ("0") Then
   lblResult.Text = btnNumber.Text

这意味着Label lblResult的文字根据点击的按钮设置为0-9之间的任意数字。例如,如果点击btnFive,则lblResult的文字将为5,如果此按钮的文字属性为5。如果单击按钮但不是第一次,则将执行Else块。再例如,如果点击btnFour,则假设您点击了' btnFive'在此之前,如果此按钮的文字属性为lblResult,则54的文字将为4。再次点击btnOne,它将是541,依此类推。希望这有助于您理解代码。

答案 2 :(得分:0)

Privat Sub btn_Click(sender As Object ... 是一个事件处理程序。

sender是接收Click事件的控件。

由于此处理程序设置了可以接收事件的完整控件列表,因此我们可以使用text属性来确定单击哪个控件。

标签lblResult.text的起始值是" 0"。因此,如果这就是标签中的所有内容,我们将使用单击的按钮的文本替换标签文本属性中的值。

如果已经点击了一个按钮,那么标签将没有" 0"了。在这种情况下,Else部分将启动,标签会将单击按钮的文本附加到已存在的任何内容中。

您可以使用事件处理程序为计算器上的每个按钮编写此程序,并重复If...Else代码,但这将是大量的输入。让一个处理程序更短,你可以编写并且行为相同。