还剩27页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
程序设计基础教学课件VB视频什么是和Visual BasicVB.NET发展历程特性与应用(简称)是由微软公司开发的一种编程语言,自年首次发布以来经历了多次重Visual BasicVB1991大版本更新从最初的到,它一直是平台上最受欢迎的快速应用程序开发工VB
1.0VB
6.0Windows具之一年,微软推出了基于框架的全新,标志着这门语言进入了面向对象编程
2002.NET VB.NET的新时代主要版本包括传统版本,使用组件技术•VB
1.0-
6.0COM基于框架的现代版本•VB.NET2002-
2022.NET中的最新集成开发环境•Visual Studio2022VB.NET完全支持面向对象编程范式,具备类、继承、多态、接口等现代编程语言特性它与共VB.NET C#享框架,但语法更加友好,更容易上手.NET应用领域包括企业级桌面应用程序开发•数据库管理系统前端界面•财务、教育、医疗等行业专用软件•安装与配置开发环境下载社区版Visual Studio访问微软官方网站,选择免费的visualstudio.microsoft.com Visual Studio版本该版本功能完整,适合学习和小型项目开发下载时选择使Community用开发桌面应用工作负载,确保包含组件.NETVB.NET安装配置运行下载的安装程序,根据向导进行安装选择桌面开发工作负载,等待.NET下载和安装完成安装过程中可能需要重启电脑,请按提示操作安装完成后,首次启动需要登录账户或创建离线账户Microsoft环境设置与首次使用首次启动后,可以选择自定义开发环境建议新手选择Visual StudioVisual开发设置,这将优化界面布局和快捷键在工具选项中可以进一步调Basic→整字体大小、配色方案和自动保存设置,提升开发体验程序的基本结构VB过程模块与类文件Main程序的执行起点是过程,它是程序的入口点在程序的代码组织主要通过以下文件类型VB.NET MainVB.NET窗体应用中,过程通常被自动生成并隐藏在Windows Main文件包含窗体设计和事件处理代码•Form.vb文件中,负责创建并显示主窗体完整代码大致如下Program.vb文件包含共享过程和函数,可在整个应用程•Module.vb序中访问文件定义对象的属性和行为•Class.vbSub MainApplication.EnableVisualStylesApplication.SetCompatibleTextRenderingDefaultFal要添加新文件,右键点击项目→添加→新建项,然后选择相应的文se Application.RunNew Form1End Sub件类型每个文件都有特定的作用域和使用场景,合理组织代码结构是大型项目的关键如需查看或修改过程,可在解决方案资源管理器中找到Main My,打开应用程序选项卡,点击查看应用程序事件Project工程管理基础项目的文件结构VB.NET文件解决方案文件,包含一个或多个项目•.sln文件项目文件,定义项目属性和包含的文件•.vbproj文件夹存放编译后的可执行文件和•bin DLL文件夹存放中间编译文件•obj文件夹包含程序集信息和资源•Properties包含项目引用的外部库•References输出与变量基础控件输出方式变量声明与使用在中,向用户显示信息的常用控件包括VB静态文本显示,适合显示标题和说明文字Label可编辑文本框,既可输入也可输出TextBox支持格式化文本的富文本框RichTextBox显示列表项,适合多项选择ListBox下拉列表,节省界面空间ComboBox使用关键字声明变量,常见数据类型包括VB Dim弹出对话框,用于重要信息提示MessageBox示例代码整数型,如Integer1,100,-50双精度浮点数,如设置Label显示文本Label
1.Text=计算结果显示消息框MessageBox.Show操作成功完成!,提示,D ou ble
3.14,-
2.5MessageBoxButtons.OK,MessageBoxIcon.Information字符串,如你好,编程StringVB布尔值,或Boolean True False日期时间,如Date#2023/10/1#变量声明与使用示例输入与窗体控件12常用输入控件获取输入与数据验证提供多种输入控件,适合不同场景从控件获取用户输入需要注意数据类型转换和验证Windows Forms单行文本输入,适合名称、数字等简单数据TextBox获取文本框输入并转换为整数Dim userAge As IntegerIf多行文本输入,适合长文本、格式化内容RichTextBoxInteger.TryParseTextBox
1.Text,userAge Then转下拉选择,限制用户在预设选项中选择ComboBox换成功,可以使用userAge变量If userAge=18ThenCheckBox复选框,用于是/否选项Label
1.Text=成年人Else Label
1.Text=单选按钮,用于互斥选择未成年人End IfElse转换失败,提示用户RadioButtonMessageBox.Show请输入有效的年龄数字!,日期时间选择器DateTimePicker输入错误,MessageBoxButtons.OK,数字调节器,限制输入为数字NumericUpDownMessageBoxIcon.ErrorEnd If3事件绑定与响应的事件驱动模型中,常用事件包括VB点击控件时触发Click文本框内容变化时触发TextChanged列表选择变化时触发SelectedIndexChanged键盘按键事件KeyDown/KeyPress窗体加载时触发Load窗体关闭前触发FormClosing绑定事件有两种方式设计视图双击控件自动生成事件处理程序,或在代码中手动添加语句AddHandler调试与代码纠错基础断点与单步执行常见错误类型调试是编程过程中不可或缺的技能,提供了强大的调试工具VB.NET设置断点在代码行左侧空白处单击或按,或右键选择断点插入断点F9→启动调试按开始调试,程序会在断点处暂停F5单步执行逐过程执行,不进入函数内部•F10逐语句执行,会进入函数内部•F11程序中常见的错误类型包括VB跳出当前函数•Shift+F11语法错误代码不符合语言规则,在编译时报错继续执行按继续执行到下一个断点F5运行时错误程序运行过程中出现的错误,如除零、空引用条件断点右键断点条件,设置满足特定条件时才触发的断点→逻辑错误程序可以运行但结果不正确,最难发现在调试过程中,可以将鼠标悬停在变量上查看其当前值,或使用监视窗口跟踪多个变量常见错误示例与解决方法错误变量未声明score=85编译错误修正先声明变量Dim score As Integer=85错误类型不匹配Dim age As Integer=二十编译错误修正使用正确的类型Dim age As Integer=20错误索引越界Dim numbers3As Integer创建大小为4的数组numbers4=10运行时错误修正使用有效索引numbers3=10正确,索引从0开始算术运算与表达式基本运算符表达式与运算优先级复合表达式示例支持以下基本算术运算符运算优先级从高到低VB简单算术表达式Dim result1As Double=5+3*2加法括号+a+b
1.结果为11使用括号改变优先级Dim result2As Double=5-减法a-b
2.幂运算^+3*2结果为16混合使用多种运算符Dim aAs乘法负号Integer=10Dim bAs Integer=3Dim cAs Double=*a*b
3.-
2.5Dim result3As Double=a/b+c^2结果为10/3除法(返回类型结果)乘除/a/b Double
4.*,/,\+
2.5^2=
3.33+
6.25=
9.58整除与取余Dim dAs整除(返回类型结果)加减\a\b Integer
5.+,-Integer=a\b结果为3Dim eAs Integer=a Mod b取余字符串连接Mod aModb
6.结果为1幂运算(的次方)比较运算符^a^b ab
7.=,,,,=,=逻辑运算符
8.Not,And,Or,Xor在实际编程中,处理数学计算时需要注意以下几点使用括号明确表达优先级,提高代码可读性
1.注意整数除法与浮点除法的区别,返回约,而返回
2.10/
33.3310\33处理货币计算时,考虑使用类型而非,避免浮点精度问题
3.Decimal Double大型或复杂计算可使用类提供的方法,如平方根、正弦等
4.Math Math.SqrtMath.Sin避免除零错误,在执行除法前验证除数不为零
5.选择结构与条件判断语句语句If...Then...Else Select Case条件判断是程序逻辑的核心部分,提供了灵活的语句结构VB If简单If语句If score=60Then Label
1.Text=及格End IfIf-Else语句If score=60ThenLabel
1.Text=及格Else Label
1.Text=不及格End If多分支If-ElseIf-Else语句If score=90Then Label
1.Text=优秀ElseIf score=80Then Label
1.Text=良好ElseIf score=60ThenLabel
1.Text=及格Else Label
1.Text=不及格End If嵌套If语句If gender=男Then If age=18Then Label
1.Text=成年男性Else Label
1.Text=未成年男性End IfElseIfage=18Then Label
1.Text=成年女性Else Label
1.Text=未成年女性EndIfEnd If当面对多个条件分支时,语句通常比多个更清晰Select Case ElseIf基本Select Case语句Select Case score Case90To100Label
1.Text=优秀Case80To89Label
1.Text=良好Case60To79Label
1.Text=及格Case0To59Label
1.Text=不及格Case ElseLabel
1.Text=无效分数End Select使用比较运算符SelectCase TrueCase score=90Label
1.Text=优秀Case score=80Label
1.Text=良好Case score=60Label
1.Text=及格Casescore=0Label
1.Text=不及格Case ElseLabel
1.Text=无效分数End Select多值判断Select Caseweekday Case星期六,星期日Label
1.Text=周末Case星期一To星期五Label
1.Text=工作日CaseElseLabel
1.Text=无效日期End Select逻辑运算与布尔表达式布尔数据类型逻辑运算符复合布尔表达式布尔型是中表示真假的基本数据类型,只有两个可能的提供了以下逻辑运算符,用于组合和操作布尔值在实际应用中,通常需要组合多个条件形成复合布尔表达式Boolean VB VB值和它是条件判断和逻辑控制的基础TrueFalse逻辑与,当两侧都为时结果为And TrueTrue年龄在18-60之间的成年人Dim age As Integer=25Dim逻辑或,当任一侧为时结果为Or TrueTrue声明布尔变量Dim isValidAs Boolean=TrueDim isAdultAs Boolean=age=18And age=60满逻辑非,取反操作,变,变hasPermission As Boolean=False布尔表达式Dim scoreNot TrueFalse FalseTrue足多条件的学生筛选Dim score As Integer=85DimAs Integer=85Dim isPassedAs Boolean=score=Xor异或,当两侧值不同时结果为True attendanceAs Double=
0.990%出勤率Dim60显示布尔值Label
1.Text=isPassed.ToString短路与,如果左侧为则不计算右侧hasSubmitted As Boolean=TrueDim isEligibleAsAndAlso False显示True Boolean=score=80And短路或,如果左侧为则不计算右侧OrElse Trueattendance=
0.8And示例hasSubmitted需要处理的特殊情况Dim isEmergencyAsBoolean=TrueDim isWorkingHours As Boolean=基本逻辑运算Dim aAs Boolean=TrueDim bAs BooleanFalseDim shouldNotifyAs Boolean=isEmergency Or=FalseDim result1As Boolean=a AndbFalseDim NotisEmergency AndisWorkingHoursresult2As Boolean=a OrbTrueDim result3AsBoolean=Not aFalseDim result4As Boolean=aXor bTrue短路逻辑Dim result5As Boolean=FalseAndAlso SomeFunction当左侧为False时,SomeFunction不会被调用在设计复杂条件时,建议使用括号明确表达优先级,提高代码可读性循环结构概览循环循环For...Next Do循环是最常用的计数循环结构,适合已知迭代次数的情况For基本For循环For iAs Integer=1To10ListBox
1.Items.Add项目iNext指定步长的For循环For iAs Integer=0To100Step10ComboBox
1.Items.AddiNext递减For循环For iAs Integer=10To1Step-1Label
1.Text=倒计时:i模拟延时...Next嵌套For循环For rowAs Integer=1To9Dim lineAs String=For col As Integer=1To rowline=col×row=col*rowNext ListBox
1.Items.AddlineNext循环适合条件控制的情况,有两种主要形式Do Do While循环-先判断后执行Dim iAs Integer=1DoWhilei=5TextBox
1.Text=ivbCrLfi+=1Loop Do Until循环-直到条件为真才停止Dim jAs Integer=1DoUntilj5TextBox
1.Text=jvbCrLf j+=1Loop循环体后判断-至少执行一次Dim kAs Integer=1Do TextBox
1.Text=k vbCrLfk+=1Loop Whilek=5用户输入验证示例Dim inputAs StringDoinput=InputBox请输入一个1-100之间的数字Loop UntilIsNumericinput AndAlsoValinput=1AndAlsoValinput=100循环结构进阶案例多重嵌套循环嵌套循环常用于处理多维数据结构或生成复杂模式打印九九乘法表For iAs Integer=1To9Dim lineAs String=For jAs Integer=1To iline=j×i=j*i.ToString.PadLeft2NextListBox
1.Items.AddlineNext处理二维数据Dim scores4,3As Integer5行4列的成绩表计算每个学生的平均分For studentAs Integer=0To4Dim totalAs Integer=0For subject As Integer=0To3total+=scoresstudent,subject NextDim average As Double=total/4Label
1.Text=学生student+1的平均分averagevbCrLfNext循环控制与退出策略灵活使用控制语句可以实现更复杂的循环逻辑使用Exit For提前退出循环Dim foundIndex As Integer=-1For iAs Integer=0To ListBox
1.Items.Count-1If ListBox
1.Itemsi.ToString=目标项Then foundIndex=i Exit For找到后立即退出End IfNext使用Continue跳过特定迭代For iAs Integer=1To100If iMod2=0Then ContinueFor跳过偶数End IfListBox
1.Items.Addi只添加奇数Next嵌套循环中的退出控制Dim foundAsBoolean=FalseFor iAs Integer=0To dataArray.GetLength0-1For jAs Integer=0To dataArray.GetLength1-1If dataArrayi,j=searchValueThen MessageBox.Show找到值,位置i,j found=True ExitFor退出内层循环End If Next Iffound ThenExitFor退出外层循环Next数组的定义与应用数组基础多维数组数组是存储同类型数据的集合,中数组索引默认从开始VB0声明固定大小的数组Dim numbers4As Integer创建5个元素的数组0-4声明并初始化数组Dim namesAs String={张三,李四,王五,赵六}动态调整数组大小ReDim Preservescores9保留原有数据并扩展大小访问数组元素numbers0=10设置第一个元素Label
1.Text=names2访问第三个元素王五获取数组长度Dim lengthAs Integer=names.Length结果为4数组遍历方式支持多维数组,用于表示表格或矩阵等数据结构VB使用For循环遍历For iAs Integer=0To numbers.Length-1ListBox
1.Items.AddnumbersiNext使用For Each循环更简洁For Eachname As String Innames ComboBox
1.Items.AddnameNext声明二维数组3行4列Dim matrix2,3As Integer初始化二维数组Dim table,As Integer={{1,2,3},{4,5,6},{7,8,9}}访问二维数组元素matrix1,2=42设置第2行第3列的元素Label
1.Text=table0,
1.ToString显示第1行第2列值为2遍历二维数组For rowAs Integer=0Totable.GetLength0-1Dim lineAs String=For colAs Integer=0To table.GetLength1-1line=tablerow,colNext ListBox
1.Items.AddlineNext字符串处理与常用函数123字符串基本操作字符串处理函数正则表达式中的字符串是引用类型,提供了丰富的操作方法提供了多种内置函数用于字符串处理处理复杂的字符串模式匹配时,正则表达式是强大的工具VBVB字符串声明与连接Dim firstName As String=张Dim lastName获取字符串长度Dim lengthAs Integer=text.Length子字符串导入命名空间Imports System.Text.RegularExpressions验证邮As String=三Dim fullName As String=firstName提取Dim subTextAs String=text.Substring2,3从索引2开箱格式Dim emailAs String=TextBox
1.TextDim isValidEmailAslastName张三字符串格式化Dim age As Integer=25Dim info始取3个字符字符串查找Dim positionAs Integer=Boolean=Regex.IsMatch email,^[a-zA-Z0-9_.+-As String=String.Format姓名{0},年龄{1}岁,t ex t.I nd ex Of关键词Dim lastPosAs Integer=]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$提取所有数字Dim textAsfullName,age字符串比较If String.Comparename1,name2,text.LastIndexOf关键词字符串替换Dim newTextAs String=String=产品A售价128元,产品B售价99元Dim matchesAsTrue=0Then忽略大小写比较End If字符串包含检查If text.Replace旧文本,新文本字符串分割Dim partsAs MatchCollection=Regex.Matchestext,\d+For EachmatchfullName.Contains张Then字符串包含张End If大小String=text.Split,c按逗号分割字符串去除空白Dim AsMatch Inmatches ListBox
1.Items.Addmatch.Value添写转换Dim upperAs String=text.ToUpper转大写Dim lowertrimmed As String=text.Trim去除两端空白Dim leftTrim加128和99Next替换模式Dim censoredAs String=As String=text.ToLower转小写As String=text.TrimStart去除左侧空白Dim rightTrimAs Regex.Replace comment,敏感词1|敏感词2|敏感词3,String=text.TrimEnd去除右侧空白字符串填充Dim padded***As String=number.ToString.PadLeft5,0c00123字符串处理是编程中最常见的任务之一,尤其在处理用户输入、文件内容和网络数据时中的字符串是不可变的,这意味着每次修改字符串实际上都会创建一个新的字符串对象在需要频繁修改字符串的场景(如构建大型文本),应使用VB.NET类以提高性能StringBuilder窗体事件驱动编程事件驱动模型事件处理示例是典型的事件驱动编程语言,程序主要通过响应用户操作或系统事件来执行VB用户触发事件(如点击按钮、输入文本)
1.系统捕获事件并查找对应的事件处理程序
2.执行事件处理程序中的代码
3.等待下一个事件发生
4.常见控件事件类型鼠标事件Click,DoubleClick,MouseDown,MouseUp,MouseMove,MouseHover,MouseLeave键盘事件KeyDown,KeyUp,KeyPress焦点事件GotFocus,LostFocus,Enter,Leave数据事件TextChanged,ValueChanged,SelectedIndexChanged窗体事件Load,FormClosing,Resize,Paint创建事件处理程序的方法设计视图中双击控件(自动创建默认事件处理程序)
1.在属性窗口中选择事件并双击(创建指定事件处理程序)
2.代码中手动编写语句关联事件
3.AddHandler按钮点击事件Private SubButton1_Clicksender AsObject,eAsEventArgs_HandlesButton
1.Click Label
1.Text=你点击了按钮!End Sub文本框内容变化事件Private SubTextBox1_TextChangedsender AsObject,_eAsEventArgs HandlesTextBox
1.TextChanged获取当前输入的文本Dim textAs String=TextBox
1.Text显示字符数量Label
2.Text=字符数text.LengthEnd Sub窗体加载事件Private SubForm1_Loadsender AsObject,eAsEventArgs_Handles MyBase.Load初始化窗体数据ComboBox
1.Items.AddRange{选项1,选项2,选项3}DateTimePicker
1.Value=DateTime.TodayEnd Sub窗体关闭前事件Private SubForm1_FormClosingsenderAs Object,_eAsFormClosingEventArgs HandlesMe.FormClosing询问用户是否确定关闭Dimresult AsDialogResult=MessageBox.Show确定要关闭程序吗?未保存的数据将丢失,确认,MessageBoxButtons.YesNo,MessageBoxIcon.Question Ifresult=DialogResult.No Thene.Cancel=True取消关闭操作End IfEnd Sub常用控件属性与方法窗体常用属性按钮类控件属性文本类控件属性Form窗体标题文本按钮文本文本内容Text TextText窗体大小是否可用是否只读Size EnabledReadOnly初始位置(如居中、手动等)是否可见最大输入长度StartPosition VisibleMaxLength边框样式(如可调整、固定等)背景前景颜色密码字符(如)FormBorderStyle BackColor/ForeColor/PasswordChar*窗体图标文本字体是否多行Icon FontMultiline背景颜色按钮图像滚动条显示BackColor ImageScrollBars透明度()图像对齐方式文本对齐方式Opacity
0.0-
1.0ImageAlign TextAlign是否始终置顶外观样式(标准、扁平等)是否自动换行TopMost FlatStyleWordWrap常用方法包括、、等包括、、等Show,Hide,Close,ShowDialog ButtonCheckBox RadioButtonTextBox RichTextBoxLabel控件方法调用示例按钮方法Button
1.Focus设置焦点Button
1.PerformClick模拟点击文本框方法TextBox
1.Clear清空文本TextBox
1.AppendText新增文本追加文本TextBox
1.Select0,5选择文本范围TextBox
1.SelectAll全选TextBox
1.Cut剪切TextBox
1.Copy复制TextBox
1.Paste粘贴列表控件方法ListBox
1.Items.Add新项目添加项ListBox
1.Items.Remove要删除的项删除特定项ListBox
1.Items.RemoveAt3删除指定索引项ListBox
1.Items.Clear清空所有项ListBox
1.SelectedIndex=0选择第一项Dim selectedItemAs String=ListBox
1.SelectedItem.ToString获取选中项ComboBox方法ComboBox
1.DropDownStyle=ComboBoxStyle.DropDownList设置为下拉列表ComboBox
1.DroppedDown=True显示下拉列表窗体方法Me.Refresh刷新窗体Me.Update更新窗体Me.Close关闭窗体子程序与函数定义过程函数Sub Function过程用于执行操作但不返回值Sub无参数子程序Private SubClearForm TextBox
1.Clear TextBox
2.Clear CheckBox
1.Checked=False RadioButton
1.Checked=TrueEnd Sub带参数子程序Private SubShowMessagemessage AsString,isError AsBoolean IfisError ThenMessageBox.Showmessage,错误,MessageBoxButtons.OK,MessageBoxIcon.Error ElseMessageBox.Showmessage,信息,MessageBoxButtons.OK,MessageBoxIcon.Information End IfEnd Sub调用子程序ClearFormShowMessage操作已完成,False函数执行操作并返回值Function参数传递方式基本函数定义Private FunctionCalculateTotalprice As Double,quantity As Integer As Double Returnprice*quantityEnd Function字符串处理函数Private值传递默认Private SubIncreaseValuex As Integer x+=1只修改局部副本End Sub引用传递Function FormatPhoneNumberphoneAs String As StringIf phone.Length=11Then ReturnPrivate Sub IncreaseValueByRefByRefxAs Integer x+=1修改原始变量End Sub可选参数phone.Substring0,3-phone.Substring3,4-Private SubProcessDatadata As String,Optional isUrgentAsBoolean=phone.Substring7Else Returnphone不符合格式则原样返回End IfEnd Function带验False处理逻辑End Sub参数数组Private SubLogMultipleParamArray messagesAs String证的函数Private FunctionGetValidAgeinput As StringAs Integer Dimage As Integer IfFor Each msgAs StringIn messagesDebug.WriteLinemsg NextEnd SubInteger.TryParseinput,age AndAlso age0AndAlsoage120Then ReturnageElse Return-1返回错误标志End IfEnd Function调用函数并使用返回值Dim totalAs Double=CalculateTotal
12.5,4Label
1.Text=总价total.ToStringCDim formattedPhoneAs String=FormatPhoneNumber13812345678TextBox
1.Text=formattedPhone显示138-1234-5678面向对象简介()VB.NET类与对象基础实例化与使用对象继承与多态完全支持面向对象编程,类是创建对象的模板创建类的实例并使用其属性和方法继承允许创建派生类,重用和扩展基类功能VB.NET定义简单的学生类Public ClassStudent字段私有数据创建学生对象Dim student1As New Student张三,20Dim基类Public ClassPerson Public Property NameAsPrivate_name AsString Private_age As Integer student2As New Student李四,19访问属性Label
1.Text=String Public Property Age As IntegerPublicPrivate_scoreAsDouble构造函数Public Substudent
1.Namestudent
2.Score=
85.5调用方法If Sub Newname AsString,age As Integer Me.Name=Newname AsString,ageAs Integer_name=name student
1.IsAdult ThenLabel
2.Text=已成年End nameMe.Age=age End Sub可被覆盖的虚方_age=age_score=0EndSub属性提供访Ifstudent
2.DisplayInfo创建对象数组Dim students2As法Public OverridableFunction GetDescriptionAs问字段的接口Public PropertyNameAsString GetS tudentstudents0=New Student王五,21students1=String Return姓名Name,年龄AgeReturn_name End Get Setvalue AsStringNewStudent赵六,18students2=NewStudent钱七,End FunctionEnd Class派生类Public ClassTeacher_name=value End Set End Property Public20遍历对象数组ForEachsAsStudent Instudents InheritsPerson Public Property SubjectAs StringPropertyAgeAs Integer GetReturn_age ListBox
1.Items.Adds.Name-s.AgeNext Public SubNewnameAsString,ageAs Integer,EndGetSetvalueAs Integer IfvaluesubjectAsString MyBase.Newname,age调用基类0And value120Then_age=value构造函数Me.Subject=subject EndSub覆End If EndSetEndProperty自动实现的属盖基类方法Public OverridesFunction GetDescriptionAs性简化写法Public PropertyScore AsDoubleString ReturnMyBase.GetDescription方法Public FunctionIsAdult AsBoolean Return,教授科目Subject End FunctionEnd Class_age=18EndFunctionPublic SubDisplayInfoMessageBox.Show姓名_name vbCrLf年龄_agevbCrLf成绩_score EndSubEnd Class错误处理与异常捕捉异常处理基础异常处理最佳实践使用结构处理异常VB.NET Try-Catch-Finally基本异常处理结构Try可能引发异常的代码Dim numberAs Integer=Integer.ParseTextBox
1.TextLabel
1.Text=数字的平方是number*numberCatch ex As Exception异常处理代码MessageBox.Show发生错误ex.Message,错误,MessageBoxButtons.OK,MessageBoxIcon.ErrorFinally无论是否发生异常都会执行的代码StatusLabel.Text=处理完成End Try捕获特定类型的异常Try Dimdivisor AsInteger=Integer.ParseTextBox
2.Text Dimresult AsDouble=100/divisor Label
2.Text=结果resultCatch exAs FormatException MessageBox.Show请输入有效的数字!Catch exAsDivideByZeroException MessageBox.Show除数不能为零!Catch exAs OverflowExceptionMessageBox.Show数字超出范围!Catch exAs Exception捕获所有其他类型的异常MessageBox.Show发生未知错误ex.MessageEnd Try设计健壮的异常处理机制资源清理示例Dim connAs SqlConnection=NothingTry conn=New SqlConnectionconnectionStringconn.Open数据库操作...Catch exAs SqlExceptionLogError数据库错误,exShowErrorMessage连接数据库时出错,请稍后再试Catch exAs ExceptionLogError未知错误,exShowErrorMessage发生未知错误,请联系管理员Finally确保连接关闭If connIsNot NothingThenconn.Close End IfEnd Try自定义异常类Public ClassInvalidStudentDataExceptionInherits ExceptionPublic SubNewmessage AsString MyBase.Newmessage EndSubEndClass抛出自定义异常Public SubRegisterStudentname AsString,ageAsInteger IfString.IsNullOrEmptyname Then Throw NewInvalidStudentDataException学生姓名不能为空End IfIfage6Or age70ThenThrowNewInvalidStudentDataException学生年龄必须在6-70岁之间End If正常处理逻辑...EndSub文件操作基础文本文件读写1提供多种方式处理文本文件VB.NET导入命名空间Imports System.IO读取整个文本文件Try Dimcontent AsString=2使用流读写文件File.ReadAllTextC:\temp\data.txt TextBox
1.Text=contentCatch exAs Exception使用类可以更灵活地控制文件操作MessageBox.Show读取文件时出错ex.MessageEnd Try读取文本文件行Try Dimlines AsStreamString=File.ReadAllLinesC:\temp\data.txt ForEach lineAsStringIn linesListBox
1.Items.Addline NextCatch exAs ExceptionMessageBox.Show读取文件时出错使用StreamReader逐行读取大文件Dim readerAs StreamReader=NothingTry reader=New ex.MessageEnd Try写入文本文件Try File.WriteAllTextC:\temp\output.txt,StreamReaderC:\temp\largefile.txt WhileNot reader.EndOfStream Dimline AsTextBox
1.Text MessageBox.Show文件保存成功!Catch exAs ExceptionString=reader.ReadLine处理每一行...If line.ContainsSearchKeywordMessageBox.Show保存文件时出错ex.MessageEnd Try追加内容到文件Try ThenListBox
1.Items.Addline EndIfEnd WhileCatch exAs ExceptionFile.AppendAllTextC:\temp\log.txt,DateTime.Now.ToStringM essageBox.Show读取文件时出错ex.MessageFinally Ifreader IsNot Nothing Then:TextBox
1.TextvbCrLfCatch exAs ExceptionMessageBox.Show写入日志时出错reader.Close EndIfEnd Try使用StreamWriter写入文件Dim writerAs StreamWriter=ex.MessageEnd TryNothingTry writer=New StreamWriterC:\temp\output.txt ForEach itemAs StringInListBox
1.Items writer.WriteLineitem NextMessageBox.Show文件保存成功!CatchexAsExceptionMessageBox.Show保存文件时出错ex.MessageFinally IfwriterIsNotNothingThen writer.Close EndIfEnd Try调试技巧与性能优化高级调试技巧性能优化技巧掌握这些调试技巧可以提高问题定位效率条件断点右键点击断点条件,设置表达式,仅当表达式为真时才会触发断点→监视窗口调试时选择变量右键添加监视,或使用调试窗口监视→→→→即时窗口按打开,可在调试过程中执行临时代码或检查变量Ctrl+G调用堆栈调试窗口调用堆栈,查看当前执行位置的调用路径→→局部变量窗口显示当前作用域中所有变量的值异常设置调试窗口异常设置,配置哪些异常应该被捕获→→使用Debug类输出调试信息Debug.WriteLine当前值counter添加调试断言Debug.Assertvalue0,value必须大于0条件编译#If DEBUGThen仅在调试模式下执行的代码ShowDetailedErrorInfoex#Else仅在发布模式下执行的代码LogErrorex#EndIf提高应用性能的常见方法VB.NET项目案例一学生成绩管理小程序项目需求分析学生成绩管理系统需要实现以下功能学生信息录入(姓名、学号、各科成绩)
1.成绩统计(总分、平均分、排名)
2.成绩查询(按学号或姓名)
3.数据持久化(保存和加载)
4.界面设计主窗体包含以下组件学生信息输入区(、等)•TextBox NumericUpDown操作按钮区(添加、查询、统计、保存、加载)•数据显示区(或)•DataGridView ListBox统计信息区(显示统计结果)•Label数据结构设计学生类定义Public ClassStudent PublicProperty IDAsStringPublicPropertyNameAsStringPublic PropertyChinese AsDouble PublicProperty MathAsDouble PublicPropertyEnglish AsDoublePublicPropertyTotal AsDoublePublicProperty AverageAsDoublePublic PropertyRankAsInteger计算总分和平均分PublicSubCalculateScores Total=Chinese+Math+English Average=Total/3EndSub转换为保存格式Public FunctionToSaveStringAsStringReturn ID,Name,Chinese,Math,English EndFunctionEndClass核心功能实现项目案例二简易计算器开发界面设计计算器界面布局显示结果的(只读)•TextBox数字按钮()•0-9运算符按钮(、、、)•+-*/功能按钮(清除、等于、小数点)•额外功能开方、平方、百分比•数据存储需要存储的状态变量当前输入的数字•上一个操作数•当前选择的运算符•是否刚完成计算(用于处理连续计算)•是否开始新输入(决定是追加数字还是替换)•核心功能实现主要功能模块数字输入处理•运算符处理•计算逻辑实现•特殊功能(平方、开方等)•错误处理(除零等异常情况)•异常处理与测试需要处理的异常情况除以零错误•溢出错误(结果超出数值范围)•非法输入(多个小数点等)•负数开方等无效操作•项目案例三数组与查找项目设计本项目实现一个简单的数组数据管理和查找应用,包含以下功能一维数组与二维数组的创建与显示
1.数组数据的随机生成与手动输入
2.线性查找与二分查找算法实现
3.查找结果的高亮显示
4.查找性能比较
5.界面设计包括数组维度选择(单选按钮)•数组大小设置(控件)•NumericUpDown数据生成与手动输入选项•数组内容显示区(或自定义)•DataGridView Panel查找值输入框和查找按钮•结果显示区域和性能统计•核心算法生成随机数组PrivateSubGenerateRandomArraysize AsInteger ReDimdataArraysize-1Dimrand AsNew RandomFor iAsInteger=0To size-1dataArrayi=rand.Next1,1000Next DisplayArrayEndSub线性查找算法Private FunctionLinearSearchvalue AsInteger AsIntegerDim startTime As DateTime=DateTime.Now Dimcomparisons AsInteger=0For iAsInteger=0To dataArray.Length-1comparisons+=1If dataArrayi=value ThenDim endTimeAs DateTime=DateTime.Now Dimduration As TimeSpan=endTime-startTime lblStats.Text=String.Format找到结果,位置{0},比较次数{1},耗时{2}毫秒,i,comparisons,duration.TotalMillisecondsHighlightCelli Returni EndIfNextDim notFoundEndTimeAs DateTime=DateTime.Now DimnotFoundDuration AsTimeSpan=notFoundEndTime-startTime lblStats.Text=String.Format未找到结果,比较次数{0},耗时{1}毫秒,comparisons,notFoundDuration.TotalMilliseconds Return-1EndFunction二分查找算法(要求数组已排序)Private FunctionBinarySearchvalue AsIntegerAsInteger先排序数组Array.SortdataArrayDisplayArray DimstartTimeAs DateTime=DateTime.Now Dimcomparisons AsInteger=0Dim leftAsInteger=0Dim rightAsInteger=dataArray.Length-1While left=rightcomparisons+=1Dim midAsInteger=left+right\2If dataArraymid=value ThenDim endTimeAs DateTime=DateTime.Now Dimduration AsTimeSpan=endTime-startTime lblStats.Text=String.Format找到结果,位置{0},比较次数{1},耗时{2}毫秒,mid,comparisons,duration.TotalMilliseconds HighlightCellmidReturn midElseIfdataArraymidvalue Thenleft=mid+1Else right=mid-1EndIfEndWhileDim notFoundEndTimeAsDateTime=DateTime.Now DimnotFoundDurationAsTimeSpan=notFoundEndTime-startTime lblStats.Text=String.Format未找到结果,比较次数{0},耗时{1}毫秒,comparisons,notFoundDuration.TotalMilliseconds Return-1EndFunction高亮显示查找结果Private SubHighlightCellindexAsInteger清除之前的高亮For iAsInteger=0To dgvArray.Rows.Count-1For jAsInteger=0To dgvArray.Columns.Count-1dgvArray.Rowsi.Cellsj.Style.BackColor=Color.White NextNext计算在DataGridView中的行列位置If rbOneDim.Checked ThendgvArray.Rows
0.Cellsindex.Style.BackColor=Color.Yellow ElseDim rowAsInteger=index\columnsCount DimcolAsInteger=index ModcolumnsCountdgvArray.Rowsrow.Cellscol.Style.BackColor=Color.Yellow EndIfEnd Sub与基础对比(选学)Excel VBA与的主要区别应用场景基础入门VBA VB.NET Excel VBA VBA虽然与同属家族,在中的常见应用开始使用的步骤VBAVisual Basicfor ApplicationsVB.NET Visual Basic VBA Excel Excel VBA但它们存在显著差异数据处理自动化批量处理大量数据,如格式化、筛选、计算启用开发者选项卡文件选项自定义功能区勾选开发工具→→→自定义函数创建内置函数无法实现的计算打开编辑器开发工具或按ExcelVBA→Visual BasicAlt+F11特性VBA VB.NET用户界面增强创建自定义对话框、表单和菜单创建模块插入模块→运行环境寄宿在Office等应用独立编译为可执行报表自动生成定期生成标准化报表编写宏Sub过程是VBA的基本单位程序中文件或DLL与其他系统集成连接数据库、调用服务运行宏开发工具宏选择并运行,或使用按钮触发Web→→编程模型主要是过程式编程完全支持面向对象工作流自动化减少重复性手工操作简单的VBA宏示例编程特别适合会计、财务、数据分析等领域的专业人士,他们通常需要ExcelVBA在Excel中进行复杂的数据处理,但可能不具备完整的软件开发技能Sub HelloWorldMsgBox你好,这是我的第一个VBA宏!,版本更新相对稳定,变化较持续更新,引入新vbInformation,问候End SubSubFormatData选择A1:D10少特性区域RangeA1:D
10.Select设置字体和背景With Selection.Font.Bold=类型安全弱类型,支持强类型,类型检查True.Interior.Color=RGB220,230,更严格Variant
241.Borders.LineStyle=xlContinuous EndWith自动调整列宽ColumnsA:D.AutoFitEnd Sub语法差异保留较旧的语法现代化语法,更多语言特性从到的技能迁移相对容易,因为基本语法结构类似熟悉了的控制结构、变量声明和函数定义后,只需学习对象模型就能开始编写有用的宏的对象模型主要包括、、、VB.NET ExcelVBA VB.NET ExcelVBAExcelApplication WorkbookWorksheet Range等对象,它们提供了访问和操作各个元素的接口Excel如果您已掌握基础,建议通过以下步骤学习VB.NET ExcelVBA了解对象模型的层次结构
1.Excel常见问题与疑难解答环境配置问题新手常见的环境配置问题及解决方案安装失败或崩溃尝试以管理员身份运行安装程序,或使用离线安装包1组件缺失在安装程序中修改,添加缺失的工作负载或组件VisualStudio版本冲突确保安装了项目所需的版本.NET Framework.NET Framework找不到项目模板检查安装时是否选择了桌面开发工作负载.NET中文显示乱码检查项目和文件的编码设置,通常应使用UTF-8常见编码错误初学者容易犯的编码错误变量未声明确保在使用前使用声明所有变量Dim警告开启严格类型检查会暴露潜在类型转换问题2Option Strict索引越界访问数组前检查索引是否有效控件命名混淆避免使用与控件类型同名的变量名(如与混淆)TextBox
1.Text TextBox事件处理程序重复检查子句是否重复绑定同一事件Handles作用域问题理解变量作用域,避免在错误的作用域中访问变量运行时异常常见的运行时错误及处理方法在使用对象前检查是否为NullReferenceException Nothing使用替代进行安全的类型转换3FormatException TryParseParse使用或进行安全类型转换InvalidCastException DirectCastTryCast确保文件操作有适当的权限和错误处理IOException避免不当终止线程,使用正确的异步模式ThreadAbortException检查资源使用,特别是处理大量数据时OutOfMemoryException资源查找遇到问题时的有效资源微软官方文档提供最权威的参考资料docs.microsoft.com搜索类似问题或提问4Stack Overflow在线学习资源推荐视频教程在线教学平台电子资料与书籍YouTube上有丰富的教程视频资源,推荐以下几个优以下平台提供结构化的学习课程推荐的学习书籍和电子资料YouTube VB.NET VB.NET VB.NET质频道中国大学有多所高校提供的编程课程《入门经典(第版)》适合零基础学习者的MOOC VB.NET Visual Basic7提供基础到高级的系中文教材ProgrammingKnowledge VB.NET慕课网提供实用的项目教程VB.NET列教程,讲解清晰《实用教程》清华大学出版社出版,有付费的高质量课程,经常有折扣Visual Basic2015Udemy VB.NET微软官方频道,有权威的技术演示和讲内容全面MSDN Channel9高质量的技术课程,适合进阶学习Pluralsight.NET解《程序设计案例教程》包含丰富的实例,适合VisualBasic菜鸟教程免费的中文基础教程VB.NET虽然主要关注网页开发,但有优质的入门实践学习Academind.NET简明易懂的编程教程,包括部分内容W3Schools VB.NET《开发实战例》提供大量代码示VisualBasic20151200提供全面的技术教程,包括部分例和解决方案kudvenkat.NET VB.NET微软文档最权威的技术参考资料,提供完整文档MSDN API提供实用的开发技巧和项目演示IAmTimCorey.NET代码库搜索可找到许多开源GitHub VB.NET examples项目选择学习资源的建议结合多种资源视频教程便于理解概念,文档资料适合查阅细节,实践项目帮助巩固技能循序渐进先掌握基础语法,再学习控件和事件,然后是数据库和高级特性动手实践编程学习最有效的方式是实际编写代码,尝试修改示例并观察结果参与社区加入中文论坛或群,与其他学习者交流经验VB.NET QQ课程回顾与总结核心语法回顾项目经验与收获本课程已经覆盖了编程的关键知识点VB基础语法变量声明与数据类型•运算符与表达式•条件结构•If,SelectCase循环结构•For,Do,While数据处理数组与集合操作•字符串处理函数•文件读写操作•错误处理与异常•界面编程窗体与控件基础•事件驱动编程模型•控件属性与方法•用户界面设计原则•通过三个实践项目,学习者应该已经掌握了进阶特性完整开发流程从需求分析、界面设计到功能实现和测试函数与子过程•代码组织能力学会将复杂功能分解为模块和函数面向对象编程•调试排错技巧能够定位和解决常见问题调试与性能优化•用户体验思维考虑用户操作习惯和错误处理实用项目案例•这些项目经验是理论知识转化为实践能力的关键步骤,也是今后开发更复杂应用的基础特别是学生成绩管理系统和计算器这样的经典项目,包含了数据处理、界面交互、错误处理等多方面的实践知识推荐后续学习方向互动答疑与新方向展望常见学习疑问软件开发职业路径在课程结束时,学生常有以下疑问学完基础后,我应该深入哪个方向?与相比,哪个更有就业前景?VB.NET C#如何从小项目过渡到开发大型应用?我的代码能力如何得到提升?是否应该转向或移动开发?Web这些问题没有标准答案,取决于个人兴趣和职业规划一般而言,掌握数据库编程是几乎所有方向的基础;如果以就业为导向,学习作为补充是明智的选择;提升代码能力最有效的方法是持续实践和阅读优质开源代码C#掌握后的职业发展路径VB.NET企业应用开发工程师开发内部业务系统、数据处理工具桌面应用开发专家专注于高性能应用程序Windows全栈开发者同时掌握前端和后端开发技能.NET数据库应用专家专注于数据密集型应用开发系统集成工程师连接不同系统和平台的解决方案自动化测试工程师开发测试框架和工具不同岗位对技能组合的要求不同,但扎实的编程基础、问题解决能力和持续学习是共同的核心要素技术发展趋势与建议。
个人认证
优秀文档
获得点赞 0