⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formmain.vb

📁 Visual Basic.net 实例入门
💻 VB
📖 第 1 页 / 共 2 页
字号:
        'btNum7
        '
        Me.btNum7.FlatStyle = System.Windows.Forms.FlatStyle.Flat
        Me.btNum7.ForeColor = System.Drawing.Color.Blue
        Me.btNum7.Location = New System.Drawing.Point(8, 72)
        Me.btNum7.Name = "btNum7"
        Me.btNum7.Size = New System.Drawing.Size(32, 23)
        Me.btNum7.TabIndex = 77
        Me.btNum7.TabStop = False
        Me.btNum7.Text = "7"
        '
        'tResult
        '
        Me.tResult.Location = New System.Drawing.Point(8, 8)
        Me.tResult.Name = "tResult"
        Me.tResult.ReadOnly = True
        Me.tResult.Size = New System.Drawing.Size(192, 21)
        Me.tResult.TabIndex = 66
        Me.tResult.TabStop = False
        Me.tResult.Text = ""
        Me.tResult.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
        '
        'pKey
        '
        Me.pKey.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
        Me.pKey.Location = New System.Drawing.Point(8, 40)
        Me.pKey.Name = "pKey"
        Me.pKey.Size = New System.Drawing.Size(32, 24)
        Me.pKey.TabIndex = 1
        Me.pKey.TabStop = True
        '
        'btEqu
        '
        Me.btEqu.FlatStyle = System.Windows.Forms.FlatStyle.Flat
        Me.btEqu.ForeColor = System.Drawing.Color.Red
        Me.btEqu.Location = New System.Drawing.Point(168, 72)
        Me.btEqu.Name = "btEqu"
        Me.btEqu.Size = New System.Drawing.Size(32, 120)
        Me.btEqu.TabIndex = 55
        Me.btEqu.TabStop = False
        Me.btEqu.Text = "="
        '
        'btNeg
        '
        Me.btNeg.FlatStyle = System.Windows.Forms.FlatStyle.Flat
        Me.btNeg.ForeColor = System.Drawing.Color.Blue
        Me.btNeg.Location = New System.Drawing.Point(48, 168)
        Me.btNeg.Name = "btNeg"
        Me.btNeg.Size = New System.Drawing.Size(32, 23)
        Me.btNeg.TabIndex = 19
        Me.btNeg.TabStop = False
        Me.btNeg.Text = "+-"
        '
        'form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(208, 201)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.pKey, Me.btEqu, Me.btC, Me.btCE, Me.btBackspace, Me.btAdd, Me.btSub, Me.btMul, Me.btDiv, Me.btDot, Me.btNeg, Me.btNum0, Me.btNum9, Me.btNum8, Me.btNum7, Me.btNum6, Me.btNum5, Me.btNum4, Me.btNum3, Me.btNum2, Me.btNum1, Me.tResult})
        Me.MaximizeBox = False
        Me.Menu = Me.MainMenu1
        Me.Name = "form1"
        Me.Text = "计算器"
        Me.ResumeLayout(False)

    End Sub

#End Region

    Dim sOper As String
    Dim bDot, bEqu As Boolean
    Dim dblAcc, dblDes, dblResult As Double

    Private Sub subReset()
        sOper = ""
        dblAcc = 0
        dblDes = 0
        dblResult = 0
        bDot = False
        bEqu = False
        tResult.Text = ""
        '对变量及控件属性进行初始化
        pKey.Focus()
        '将焦点移至Panel上,以免出现闪烁光标
    End Sub

    Private Sub bt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim sText As String
        Dim bClick As Button
        bClick = sender
        '将被点击的按钮赋给定义的bClick变量
        sText = bClick.Text
        Select Case sText
            '通过按钮属性来判断是哪个Button被点击,并执行相应的操作
        Case "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"
                '输入为数字
                If bEqu Then
                    tResult.Text = ""
                End If
                '如果已经执行过一次计算,那么再次输入数字时,应清空tResult
                bEqu = False
                tResult.Text = tResult.Text + sText
                '将输入的字符累加

            Case "."
                If Not bDot Then
                    tResult.Text = tResult.Text + sText
                    bDot = True
                End If
                '如果此前已经有小数点输入,那么这次的小数点输入将被忽略

            Case "+", "-", "*", "/"
                dblAcc = tResult.Text
                tResult.Text = ""
                sOper = sText
                '记下被操作数及操作符

            Case "="
                bDot = False
                If Not bEqu Then
                    dblDes = tResult.Text
                End If
                '如果本次对“=”的点击是连续的第二次点击,那么操作数不变
                bEqu = True
                Select Case sOper
                    Case "+"
                        dblResult = dblAcc + dblDes
                        '执行加法操作
                    Case "-"
                        dblResult = dblAcc - dblDes
                        '执行减法操作
                    Case "*"
                        dblResult = dblAcc * dblDes
                        '执行乘法操作
                    Case "/"
                        dblResult = dblAcc / dblDes
                        '执行除法操作
                End Select
                '根据操作符的不同执行相应的计算
                tResult.Text = dblResult
                dblAcc = dblResult
                '将计算结果赋给被操作数,以便执行连续的第二次操作

            Case "+/-"
                If tResult.Text.Substring(0, 1) = "-" Then
                    tResult.Text = tResult.Text.Substring(1, tResult.Text.Length - 1)
                    '如果当前数值为负,则去掉数字最前面的“-”将其变为正数
                Else
                    tResult.Text = "-" + tResult.Text
                    '如果当前数值为正,则在数字最前面加上“-”将其变为负数
                End If
                '通过对tResult.Text字符串的首位的判断来确定当前数值的正负

            Case "C"
                subReset()
                '清除所有操作数、被操作数及运算结果,即将计算器重置

            Case "CE"
                tResult.Text = ""
                '清除文本框内容

            Case "BackSpace"
                If tResult.Text <> "" Then
                    '当tResult.Text非空时执行退格操作,以免出现溢出
                    If tResult.Text.Substring(tResult.Text.Length - 1) = "." Then
                        bDot = False
                    End If
                    '当小数点被删掉时,将小数点标志位bDot重置
                    tResult.Text = tResult.Text.Substring(0, tResult.Text.Length - 1)
                    '执行退格操作
                End If
        End Select
        pKey.Focus()
        '每次点击按钮后,将焦点重新转移到Panel上
    End Sub

    Private Sub formMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim bt(27) As Button
        '定义控件数组
        Dim i As Integer

        bt(1) = btNum1
        bt(2) = btNum2
        bt(3) = btNum3
        bt(4) = btNum4
        bt(5) = btNum5
        bt(6) = btNum6
        bt(7) = btNum7
        bt(8) = btNum8
        bt(9) = btNum9
        bt(10) = btNum0
        bt(11) = btNeg
        bt(12) = btDot
        bt(13) = btDiv
        bt(14) = btMul
        bt(15) = btAdd
        bt(16) = btSub
        bt(17) = btEqu
        bt(18) = btBackspace
        bt(19) = btCE
        bt(20) = btC
        '为控件数组赋值

        For i = 1 To 20
            AddHandler bt(i).Click, New System.EventHandler(AddressOf Me.bt_Click)
            '此处是为控件数组bt的所有成员关联事件函数,体现出控件数组的方便之处
        Next
        subReset()
        '调用初始化函数对变量及控件属性进行初始化
    End Sub

    Private Sub mExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mExit.Click
        Application.Exit()
        '退出应用程序
    End Sub

    Private Sub mAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mAbout.Click
        Dim fAbout As New formAbout()
        fAbout.Show()
        '显示“关于”窗体
    End Sub

    Private Overloads Sub pKey_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles pKey.KeyPress

        Select Case e.KeyChar
            Case "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"
                '输入为数字
                If bEqu Then
                    tResult.Text = ""
                End If
                '如果已经执行过一次计算,那么再次输入数字时,应清空tResult
                bEqu = False
                tResult.Text = tResult.Text + e.KeyChar
                '将输入的字符累加

            Case "."
                If Not bDot Then
                    tResult.Text = tResult.Text + e.KeyChar
                    bDot = True
                End If
                '如果此前已经有小数点输入,那么这次的小数点输入将被忽略

            Case "+", "-", "*", "/"
                dblAcc = tResult.Text
                tResult.Text = ""
                sOper = e.KeyChar
                '记下被操作数及操作符

            Case "="
                bDot = False
                If Not bEqu Then
                    dblDes = tResult.Text
                End If
                '如果本次输入的“=”是第二次输入,那么操作数不变
                bEqu = True
                Select Case sOper
                    Case "+"
                        dblResult = dblAcc + dblDes
                        '执行加法操作
                    Case "-"
                        dblResult = dblAcc - dblDes
                        '执行减法操作
                    Case "*"
                        dblResult = dblAcc * dblDes
                        '执行乘法操作
                    Case "/"
                        dblResult = dblAcc / dblDes
                        '执行除法操作
                End Select
                '根据操作符的不同执行相应的计算
                tResult.Text = dblResult
                dblAcc = dblResult
                '将计算结果赋给被操作数,以便执行连续的第二次操作

            Case Chr(8)
                If tResult.Text <> "" Then
                    '当tResult.Text非空时执行退格操作,以免出现溢出
                    If tResult.Text.Substring(tResult.Text.Length - 1) = "." Then
                        bDot = False
                    End If
                    '当小数点被删掉时,将小数点标志位bDot重置
                    tResult.Text = tResult.Text.Substring(0, tResult.Text.Length - 1)
                    '执行退格操作
                End If
        End Select
        pKey.Focus()
        '每次输入后,将焦点重新转移到Panel上

    End Sub

    Private Sub formMain_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
        pKey.Focus()
        '使pKey获得输入焦点
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim a As Boolean
        Dim b As Boolean
        a = a Xor b
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -