VB.NET 教程 · 2.2

2.2 加法

让两个数字真的加起来,并显示在窗口上。

第 2 章 变量(加法计算器) 适合新手

*本节主要讲解VB基本运算的原理和类型转换

绘制界面

既然要做计算器,那么现有的界面肯定是不行了。

所以先按照下面的图片来绘制新的界面。

几个文本框分别为:TextBox1、TextBox2、TextBox3。

+和=号的控件是Label,即标签,与TextBox不同的是,用户使用过程中不能自己输入内容。

Form1 窗体设计界面,一排三个文本框,中间分别有“+”和“=”两个标签,下方是一个写着“计算”的按钮
计算器的窗体布局

双击按钮,并且为它添加如下语句:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        TextBox3.Text = TextBox1.Text + TextBox2.Text
End Sub

然后我们尝试运行一下这些代码。。。比如说1+1

代码窗口显示 TextBox3.Text = TextBox1.Text + TextBox2.Text,下方运行中的窗体里两个文本框都输入 1,结果却显示为 11
直接相加得到的是 11 而不是 2

可以看到输出结果并不是我们认为的2,而是11,把两个字符拼凑起来了。

这是什么原因呢?

原来,系统认为输入的内容是字符,而不是数字,因此我们需要对其进行类型转换。

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim a As Integer
        Dim b As Integer
        a = Val(TextBox1.Text)
        b = Val(TextBox2.Text)
        TextBox3.Text = Str(a + b)
    End Sub

因此,我们创建两个类型为Integer的变量。Integer就代表整数。至此,加上上一节学到的String,我们已经掌握了两种类型了。

Val是一种函数,作用是把字符串String转换成数字。

同样的,Str也是一种函数,作用是把数字转换成字符串。

尽管现在的VB在这种情况下已经有自动转换类型的能力了,但我们作为初学者,还是以严谨为好。

那么我们再运行一次

运行后的窗体,两个文本框都输入 1,结果文本框显示 2,数字前面带有一个前导空格
类型转换后得到正确结果 2

果然,这次就成功了。

那么细心的同学应该注意到了,在输出结果2的前面多出了一个空格。这是什么原因呢?

原来,如果结果是负数,那么前面就会多出一个符号,为了与负号对齐,就出现了这个空格,我们称之为“前导空格”。

如果不想要这个空格,我们可以把Str改成CStr,完整代码如下,自己去试试吧。

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim a As Integer
        Dim b As Integer
        a = Val(TextBox1.Text)
        b = Val(TextBox2.Text)
        TextBox3.Text = CStr(a + b)
    End Sub
End Class