第2章 VB.NET语言基础.pptx
课程主讲人:第2章 VB.NET语言基础第2章 VB.NET语言基础3案例引入4【例2-1】我们经常会在各种平台发表留言,并希望被采纳展示。设计一个简易留言板实现留言上墙功能分析:根据题目要求,要实现留言上墙,可以利用TextBox文本框输入留言,通过Label标签显示上墙,记录下留言条数。(1)整型变量i统计留言条数(2)连接符&和符号常量vbCrlf实现多行显示信息(3)函数StrDup()在各条留言之间建立分割线。2.1 数据类型52.1.1 基本数据类型基本数据类型数据类型关键字类型符占字节数范围 数值整型Integer%4-2 147 483 6482 147 483 647长整型Long&8-263263-1短整型Short 2-32 76832767单精度型Single!4-3.4E38+3.4E38双精度型Double#8-1.79E308+1.79E308十进制数型Decimal16-292-1292-1字节型Byte 10255字符字符型Char$2单个Unicode字符字符串型String 可变动020亿个Unicode字符逻辑型Boolean 2True 或 False日期型Date 81/1/000112/31/9999对象型Object 4任何对象类型2.1.2 标识符6VB.Net中标识符的命名基本规则如下:(1)标识符通常由英文字母(不区分大小写)和数字以及其它字符构成。首字符为英文字母、下划线或汉字。(2)程序设计语言中,预先定义了一些作专门用途的标识符,即保留的关键字,用户命名的标识符不能与关键字相同。例如,Exit、For、Sub等。合法的标识符:Avg、H、xY、a11。不合法的标识符:2a、x-y、xiao ming、Sin。2.2 常量与变量72.2.1 常量常量1.普通常量普通常量常量值可以直接反映数据的类型,例如:(1)数值常量:即常数,100、&H1B、3.14159、-9.87E+10(2)字符常量:用一对双引号括起来的字符,”a”、”.NET”、”123”、”北京”、”1*9=”。(3)逻辑常量:只有两个值,True、False。(4)日期常量:用一对#括起表示某一具体日期和时间,#12/31/2020 11:59:00 PM#。2.2 常量与变量82.2.1 常量常量2.符号常量符号常量表示形式如下:Const 符号常量名 As 数据类型 = 表达式例如:Const PI=3.14定义符号常量PI,单精度浮点型Const MIN As Integer = 100定义符号常量MAX,整型2.2 常量与变量92.2.1 常量常量3.系统常量系统常量常量说明vbCrLfchr(13) & chr(10),回车并换行组合符vbCrchr(13),回车符vbLfchr(10),换行符vbNewLinechr(13) & chr(10),新建一行vbNullCharNull,空字符vbNullString,不是一个零长度的字符串vbObjectError错误编号2.2 常量与变量102.2.2 变量变量VB.Net中的变量声明的语句形式如下:Dim 变量名 As 类型=初始值例如Dim s As Integer = 0声明整型变量s,初始值为0Dim i As Long, j As String 声明一个长整型变量i和一个字符串变量jDim a, b, c As Single声明三个单精度变量a,b,cDim m%, n! 使用数据类型符声明变量Dim avg avg为Object对象类型变量Dim a1,a2 As Integer = 123错误说明:如果多个变量类型相同,可以用一个As来指定类型,但此时不能给变量同时赋一个初值。2.3 运算符与表达式112.3.1 运算符运算符常用运算符有包括算术运算符、字符串运算符、关系运算符和逻辑运算符等。1.算术运算符12运算符含义优先级实例(a=7,i=2)结果乘方1ai49-负号2-a-7*乘3a * i14/除3a / i3.5整除4a i3Mod取余5a mod i1+加6a + i9-减6a - i52.字符串运算符13运算符实例说明结果+123 + 456将两个字符串连接起来123456123 + 456将123转换为数值123,再进行加法运算579123 + 456加法运算579abc + 123非数字字符与数值不能运算,转换无效错误&123 & 456将操作数转换为字符型,再连接123456123 & 456123456123 & 456123456abc & 123abc1233.关系运算符14运算符含义实例结果 大于12345True=大于等于123=45False 小于ACABC”False=小于等于abc=”bcTrue=等于A=a”False 不等于Aa”TrueLike字符串匹配VB.NET Like NETTrue4.逻辑运算符15运算符含义优先级说明实例结果Not逻辑非1求反,当操作数为False时,结果为True;当操作数为True时,结果为FalseNot TrueFalseNot FalseTrueAnd逻辑与2两个操作数同为True,结果为 Tr u e ; 只 要 有 一 个 为False时,结果为FalseTrue And TrueTrueTrue And FalseFalseOr逻辑或3两个操作数有一个为True时,结果为True;均为False时,结果为FalseTrue Or FalseTrueFalse Or FalseFalseXor逻辑异或4两个操作数互斥,一个为True,另一个为False时,结果为True,否则为FalseTrue Xor FalseTrueTrue Xor TrueFalse5.运算符优先级16算术运算符字符串运算符关系运算符逻辑运算符2.3.2 表达式171.表达式的组成表达式的组成一系列的运算符将常量、变量、函数分隔开组成表达式2.表达式的书写规则表达式的书写规则(1)运算符不能相邻。x+ -y是错误的。(2)乘号不能省略。x 乘以y 应写成:x*y。(3)括号必须成对出现,均使用圆括号。 (4)表达式从左到右在同一基准上书写,无高低、大小之分。2.4 常用内部函数18函数的一般格式为:函数名 (参数列表) 2.4.1 数学函数19函数含义实例结果Abs(x)求x的绝对值Abs(-1.9)1.9Cos(x)求x的余弦值Cos(1)1Exp(x)求e的x次方Exp(1)2.71828182845905Log(x)求以e为底的自然对数Log(1)0Max(x,y)求x和y的最大值Max(1,9)9Min(x,y)求x和y的最小值Min(1,9)1Round(x)对x四舍五入求整Round(1.9)2Round(-1.9)-2Sin(x)求x的正弦值Sin(0)0Sqrt(x)求x的算术平方根Sqrt(9)3Tan(x)求x的正切值Tan(0)02.4.2 字符函数20函数含义实例结果Len(s)求字符串s长度Len(中国China)7Left(s,n)取字符串s左边n个字符Left(中国China,2)中国Right(s,n)取字符串s右边n个字符Right(中国China,5)ChinaMid(s,n1,n2)取字符串s中从第n1个字符开始的n2个字符Mid(中国China,5,1)iReplace(s,s1,s2)在字符串s中用s2替换s1Replace(ABCAB,A,E)EBCEBInstr(s1,s2)在字符串s1中找字符串s2的位置Instr(中国China,Ch)3StrDup(n,c)产生n个c字符StrDup(4,)IsNumeric(s)判断字符串s是否为数字字串,如果是则返回True,否则返回FalseIsNumeric(123a)FalseLcase(s)字符串s转换为小写Lcase(CHINA)chinaUcase(s)字符串s转换为大写Ucase(China)CHINASpace(n)产生n个空格Space(3)Trim(s)去掉字符串s前后的空格Trim(中国)中国21【例2-2】根据数字得到对应的是星期几。要求输入一个1-7的数字,输出对应的星期,例如输入6,输出“星期六”。程序运行界面如图2-2所示。分析:根据题目要求,在窗体上添加2个标签,2个文本框和1个命令按钮,并设置相应属性。 2.4.3 日期/时间函数22函数含义实例结果Now返回系统日期和时间Now2019/12/13 16:15:45Today返回系统日期Today2019/12/13TimeOfDay返回系统时间TimeOfDay16:15:45Year(d)返回d的年份19999Year(Now)2019Month(d)返回d的月份112Month(Now)12Day(d)返回d的日期131Day(Now)13Hour(d)返回d的小时023Hour(Now)16Minute(d)返回d的分钟059Minute(Now)15Second(d)返回d的秒059Second(Now)45Weekday(d)返回日期对应的星期数17Weekday(Now)6MonthName(n)返回整数n对应的月份名称MonthName(12)十二月WeekdayName(n)返回整数n对应的星期名称WeekdayName(5)星期四2.4.4 转换函数23函数含义实例结果ASC(s)字符转换为ASCII码值Asc(a)97Chr(n)ASCII码值转换为字符Chr(97)aVal(s)数字字符转换为数值Val(123)123Str(n)数值转换为字符串Str(123)123Fix(n)返回整数部分Fix(9.7)9Fix(-9.7)-9Int(n)返回不大于n的最大整数Int(9.7)9Int(-9.7)-10CInt(n)数值四舍五入后取整CInt(9.7)10CInt(-9.7)-10Hex(n)十进制转换为十六进制Hex(28)1COct(n)十进制转换为八进制Oct(8)10LCase(s)大写字母转换为小写字母LCase(CHINA)chinaUCase(s)小写字母转换为大写字母UCase(china)CHINA2.4.5 其他函数241.随机函数随机函数随机函数Rnd用于产生一个0,1)范围内的随机浮点数,语法格式如下:Rnd(N)产生一个a , b)之间的随机整数,通用方法如下:Int(Rnd() * (b-a) + a)例如产生一个0100的整数,表达式为Int(Rnd() * 100 )25【例2-3】简易两位数加法器。要求能够随机生成一道加法运算式,并实现两位整数加法计算,程序运行界面如图2-3所示。分析:根据题目要求,利用Rnd和Int函数随机产生2个两位整数,利用Val函数将数字字符转换为数值并求和。在窗体上添加2个标签,3个文本框和2个命令按钮,并设置相应属性。262.Format函数函数字符含义实例结果0实际数字位数小于符号位数,不足部分补0,否则四舍五入Format(3.14159,00.000000)Format(3.14159,0.000)03.1415903.142#实际数字位数小于符号位数,按实际显示,否则四舍五入Format(3.14159,#.#)Format(3.14159,#.#)3.141593.14.小数点Format(314159,0.00000)3.14159,千分位Format(314159,000,000)314,159%数值乘以100,加%Format(3.14159,#.#%)314.159%$数值前加$Format(3.14159, $0.00)$3.14E+指数表示Format(314159,0.00E+00)3.14E+052.5 面向对象的程序设计基础272.5.1 对象和类对象和类1. 对象对象对象在现实生活中就是一个实体2.类类类是对同一种对象的集合与抽象。2.5.2 对象的属性、事件和方法281.对象属性对象属性每个对象都有其不同于其他对象的特征,称之为对象的属性(Property)。2.对象事件对象事件事件(Event)是指在对象上所发生的事情。VB.NET为对象预先设置好了一系列能够被对象识别的动作。事件过程的一般格式如下:Private Sub 对象名_事件(对象引用,事件信息) Handles 对象名.事件 事件过程代码End Sub293.对象方法对象方法面向对象的程序设计提供了一种特殊的过程和函数,称为方法(Method)。对象方法的调用格式为:对象名.方法名(参数) 2.6 VB.NET基本控件30窗体和控件都是对象,窗体是可视化程序设计的基础界面,窗体是所有其他控件的容器,控件是窗体上使用的可视化组件。2.6.1 窗体(Form)311.主要属性主要属性属性说明Name窗体的名称。创建时自动提供默认名称Form1、Form2依次类推Text窗体使用的默认标题为Form1MaximizeBox是否显示窗体右上角的最大化按钮。默认值为True,若设置为False,隐藏窗体最大化按钮MinimizeBox是否显示窗体右上角的最小化按钮。默认值为True,若设置为False,隐藏窗体最小化按钮ControlBox是否在窗体左上角显示控制菜单。默认值为TrueBackgroundImage指定一个图形文件,以平铺方式设置为窗体的背景BackgroundImageLayout设置背景图像的显示方式,平铺、居中或伸缩BackColor设置窗体的背景颜色FormBorderStyle设置窗体边框类型,决定窗体的标题栏状态和可缩放性:None,窗体无边框、最大化、最小化等按钮,无法移动及改变窗体大小FixedSingle,窗体为单线边框,不可改变窗体边框大小,有最大化、最小化按钮Fixed3D,显示3D边框效果Sizable,默认属性,可改变窗体边框大小,有最大化、最小化按钮WindowState窗体的窗口状态,0常规(默认属性)、1最大化、2最小化形式显示Size窗体的大小,Width宽度、Height高度Icon设置窗体标题栏上显示的图标AcceptButton设置一个值,该值是一个按钮的名称,当按下Enter键相当于单击该按钮。通常窗体上的确定按钮被设置为窗体的AcceptButtonCancelButton设置一个值,该值是一个按钮的名称,当按下Esc键相当于单击该按钮。通常,窗体上的“取消”按钮被设置为 CancelButtonStarPosition指定运行时窗体的起始位置2.事件32事件说明Click单击窗体时触发该事件DoubleClick双击窗体时触发该事件Shown窗体第一次显示时触发该事件Closed关闭窗体时触发该事件Activate窗体的激活事件,当窗体变为活动窗体时触发该事件Deactivate与 Activate事件相反,当窗体失去焦点变为非活动窗体时触发该事件Load装载窗体时触发该事件,通常Load事件是第一个被执行的过程,常用来对程序中的对象或变量进行初始化处理Resize当窗体第一次显示或改变窗体大小时触发该事件Disposed窗体被关闭从屏幕消失时触发该事件3.方法33方法说明Show显示窗体Hide隐藏窗体ShowDialog将窗体显示为模式对话框Refresh刷新并重画窗体Activate激活窗体,并使窗体获得焦点Close关闭窗体34【例2-4】设计两个窗体,一个窗体装入时添加背景图像,一个窗体单击时改变背景颜色为红色Public Class Form1 Private Sub Form1_Load() Handles MyBase.Load Me.BackgroundImage = Image.FromFile(road.jpg) Me.BackgroundImageLayout = ImageLayout.Stretch End SubPrivate Sub Form1_DoubleClick( ) Handles Me.DoubleClick Me.Hide()主窗体Form1隐藏 Form2.Show()Form2窗体显示 End SubEnd ClassPublic Class Form2 Private Sub Form2_Click( . ) Handles Me.Click Me.BackColor = Color.Red End SubEnd Class2.6.2 标签(Label)351.主要属性主要属性属性说明Name标签的名称Text标签上显示的文本TextAlign标签中文本的对齐方式,默认值为TopLeft文本在标签中安左上方对齐,其他对齐方式:TopCenter、TopRight、MiddleLeft、MiddleCenter、MiddleRright、BottomLeft、BottomCenter、BottomRightFont标签文本的字体、字号AutoSize控件是否自动调整大小,默认值为True,根据标签内容的多少自动变化BackColor标签背景色,默认与窗体背景色一致BorderStyle标签边框样式,默认值为None无边框,FixedSingle单直线边框,Fixed3D三维凹陷边框362.事件事件标签一般响应单击Click事件。【例2-5】计算时长。随着中国的不断发展,中国被世界赋予了基建狂魔的称号,除了各种世界之最的桥梁以外,我国的高铁行业在世界的地位也是名列前茅的,更高速度试验列车CIT500,最高的实验速度已经达到了605公里每小时。已知北京至深圳高铁里程约2300公里,如果按照实验速度计算从北京到深圳坐高铁需要多长时间?Public Class Form1 Private Sub Form1_Click() Handles Me.Click Label1.Text = Label1.Text & CInt(2300 / 605) & 小时 End SubEnd Class2.6.3 文本框(TextBox)371.重要属性重要属性属性说明Name文本框的名称Text显示或输入的文本内容Textlength文本框中文本的长度,即字符个数Maxlength设置文本框可输入的文字最大长度。默认值为0,表示可以输入任意长字符串。MultiLine文本框是否可以输入或显示多行文本,默认值为False,若为True时可多行ScrollBars文本框是否出现滚动条,None无滚动条、Horizontal水平滚动条、Vertical垂直滚动条、Both同时加水平和垂直滚动条。当MultiLine为True时,ScrollBars才有效PasswordChar设置显示文本的替代符,一般用于输入密码口令时设置为“*”Locked指定文本控件是否可被编辑,默认值为False(可编辑),当设置为True时,文本控件相当于标签控件的作用ReadOnly是否可以输入、编辑、修改文本,默认值为False,若为True时文本框只读38事件事件事件说明TextChanged当文本框内容发生改变时引发该事件,即文本框每输入一个字符就引发一次事件KeyPress按下并且释放键盘上的一个键时,引发焦点所在控件的KeyPress事件 LostFocus对象失去焦点时发生的事件GotFocus与LostFocus事件相反,当一个对象获得焦点时发生方法39方法说明Focus()为文本框设置焦点Copy()将文本框当前选定的内容复制到剪贴板Cut()将文本框当前选定的内容移动到剪贴板Paste()用剪贴板的内容替换文本框当前选定的内容Select(start,length)在文本框设定起始位置,选择指定长度文本Clear()清除文本40【例2-6】简单的人机对话。Public Class Form1 Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If Asc(e.KeyChar) = 13 Then表示按回车键输入结束 TextBox2.Text = TextBox1.Text + 同学:好好学习,天天向上。前途定无量! End If End SubEnd Class2.6.4 按钮(Button)411.重要属性重要属性属性说明Name按钮的名称Text按钮上显示的文本Image按钮上显示的图像TextAlign按钮上文本的对齐方式DialogResult单击按钮时返回值,默认值None,其他返回值OK、Cancel、Abort、Retry、Ignore、Yes、NoFlatStyle设置按钮外观样式Size设置按钮的宽度和高度42事件事件按钮最常用的是Click事件,即鼠标单击按钮时发生。【例2-7】目标心率计算。目标心率 = ( 220 - a -r ) * 运动强度% + r,a是年龄,r是静止心率。Public Class Form1 Private Sub Button1_Click( . ) Handles Button1.Click Dim a, r, tr As Integer a = Val(TextBox1.Text)年龄 r = Val(TextBox2.Text)心率 tr = (220 - a - r) * 0.7 + r计算目标心率 TextBox3.Text = tr End SubEnd Class2.6.5 图片框(PictureBox)43属性说明Name图片框的名称Image图片框显示的图像Width图片框的宽度Height图片框的高度BorderStyle图片边框样式,默认值为None无边框,FixedSingle单直线边框,Fixed3D三维凹陷边框SizeMode图片框中图像显示模式:Normal默认值,当图片大小超过图片框时,图片被裁剪StretchImage,图片随图片框大小而缩放AutoSize,图片框随图片大小而缩放CenterImage,图片在图片框居中显示Zoom,与StretchImage相似,图片随图片框大小而缩放,并保持原图片的纵横比例44【例2-8】图片处理。利用图片框实现对加载的图片放大、缩小、还原和替换等功能。2.6.6 定时器(Timer)451.重要属性重要属性属性说明Name定时器的名称Interval两个Tick事件之间的时间间隔,以毫秒为单位Enabled定时器是否可用,默认值为False,此时不产生Tick事件46事件事件定时器的主要事件只有Tick事件,每隔Interval时间间隔就触发一次该事件。【例2-9】热气球升空。Public Class Form1 Private Sub Timer1_Tick(.) Handles Timer1.Tick PictureBox1.Top = PictureBox1.Top 20图片上移 PictureBox1.Left = PictureBox1.Left + 30图片右移 PictureBox1.Width = PictureBox1.Width * 0.9图片缩小 PictureBox1.Height = PictureBox1.Height * 0.9 End SubEnd Class