版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
控件的基本概念控件是放置在Windows窗体上,供用户与应用程序发生交互的对象。每种类型的控件都具有其自己的属性集、方法和事件,以使该控件适合于特定用途。
控件的属性在程序设计期间,我们可以通过属性窗口设置、修改各个控件的属性;在程序运行期间,我们也可以通过代码来取得、设置、修改各个控件的属性。(一)Label控件Label控件只能用于显示文本,不能用于编辑文本,通常用它来标识一些不便于显示文本的控件。举例如下,当点击【登录】按钮后,将提示信息“用户名:”改为“输入错误:”,并把背景颜色改为红色:
lblUserName.Text="输入错误:"lblUserName.BackColor=Color.RedTextBox控件TextBox控件主要用于接收用户输入的文本信息,也可以向用户显示文本信息。举例如下,当点击【登录】按钮后,判断用户输入的“用户名”和“密码”,如果输入正确则清空用户输入的“用户名”和“密码”信息,如果输入错误,将txtPassWord文本框的背景颜色改为红色:
IftxtUserName.Text="guest"AndtxtPassword.Text="123"ThentxtUserName.Text=""txtPassword.Text=""ElsetxtPassword.BackColor=Color.RedEndIf
Button控件Button控件主要用于引发事件,执行相关的动作。举例如下:当点击【登录】按钮,如果合法登录后,则将【登录】按钮设为不可用,禁止用户再次登录。
IftxtUserName.Text="guest"AndtxtPassword.Text="123"ThenbtnLongin.Enabled=FalseEndIf控件的方法方法是与对象关联的过程。与属性不同,方法表示对象可以执行的操作,方法可以影响属性的值。例如,在TextBox控件上,可以使用AppendText方法或Clear方法,更改Text属性的值。不同的方法有不同的使用方式,这取决于方法所需的参数数量以及方法是否返回值。Label控件举例如下:当登录窗口不再需要输入密码的时候,我们可以通过使用Hide()方法,把lblPassWord标签隐藏掉,等到需要输入密码时,再使用Show()方法把它显示处理。
lblPassWord.Hide()lblPassWord.Show()TextBox控件举例如下:我们可以通过上述属性,制作一个简单的文本编辑器。‘在窗体中添加一个TextBox控件,并命名为txtT‘添加一个Button控件,并显示文字“复制”,双击控件,添加代码txtT.Copy()‘添加一个Button控件,并显示文字“剪切”,双击控件,添加代码txtT.Cut()‘添加一个Button控件,并显示文字“粘贴”,双击控件,添加代码txtT.Paste()
‘添加一个Button控件,并显示文字“撤消”,双击控件,添加代码txtT.Undo()‘添加一个Button控件,并显示文字“清空内容”,双击控件,添加代码txtT.Clear()‘添加一个Button控件,并显示文字“选择全部”,双击控件,添加代码txtT.SelectAll()Button控件举例如下:当点击【登录】按钮,如果合法登录后,则将【登录】按钮设为不可见,禁止用户再次登录;如果登录不合法,则产生提示信息,并将焦点置于接收密码文本框,以便用户再次输入密码。
IftxtUserName.Text="guest"AndtxtPassword.Text="123"ThenbtnLongin.Hide()ElseMessageBox.Show("输入错误,请与管理员联系!")txtPassword.Focus()EndIf控件的事件VisualStudio.NET开发的Windows应用程序都是事件驱动的,即执行流程是由外界发生的事件所确定的。事件是一个信号,它告知应用程序有重要情况发生。例如,用户单击窗体上的某个按钮时,窗体引发一个Click事件并调用一个处理该事件的过程。任何能引发事件的对象都是事件发送者,也称事件源。窗体、控件和用户定义的对象都可以是事件源。事件处理程序是相应事件发生时调用的过程,我们可以将任何有效Sub过程用作事件处理程序。注意:WithEvents
关键字指示被声明的对象可以引发事件;Handles
关键字用于声明处理指定的事件的过程;例如,在设计模式下双击窗体上的Button1按钮时,VisualBasic.NET会为命令按钮创建一个空事件处理程序和一个WithEvents变量,如以下示例所示:‘声明事件源Button1FriendWithEventsButton1AsSystem.Windows.Forms.Button‘事件处理程序ProtectedSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
…
…
…
…EndSub其他控件因为其他控件大部分的属性、方法及事件与前面介绍的Label、TextBox、Button控件相类似,遇到困难请查阅MSDN。对象命名约定考虑到团队,在程序开发的过程中要求每个人都应该用一致的前缀来命名对象,使人们容易识别对象的类型。
特殊控件一、Timer控件Timer
是按标准时间间隔引发事件的组件;时间间隔的长度由Interval
属性定义,其值以毫秒为单位;若启用了该组件,则每个时间间隔引发一个Tick
事件;二、PictureBox
控件PictureBox
控件用于显示位图、GIF、JPEG、图元文件或图标格式的图形;使用Image
类的FromFile
方法设置Image
属性;设置PictureBox
控件的SizeMode
属性以达成以下目的:将图片的左上角与控件的左上角对齐使图片在控件内居中调整控件的大小以适合其显示的图片拉伸所显示的任何图片以适合控件过程过程概述
过程可以被看作是一组由用户定义的操作,它包含了实现这一操作所需的语句。VisualBasic.NET具有三种不同类型的过程:Sub过程:执行操作但并不将值返回给呼叫代码。(事件处理过程就是为响应由用户操作或程序中的事件引发的事件而执行的Sub过程。)Function过程:执行操作并将值返回给呼叫代码。Sub过程Sub过程就是是包含在Sub语句和EndSub语句中的一系列语句块。每次调用过程的时候都会执行过程中的语句,从Sub语句后的第一个可执行语句开始,到遇到的第一个EndSub、ExitSub或RETurn语句结束。Sub过程执行操作但并不返回值。它能够带参数,如呼叫代码传递给它的常数、变量或表达式。
可以在模块、类和结构中声明Sub过程。例如,声明一个过程,用于判断用户的某个输入是否为空值:
PublicSubcheckValue(ByValstrInputAsString)IfstrInput=""ThenMessageBox.Show("此处输入不能为空!")EndIfEndSub'当声明了Sub过程后,我们就可以在程序的其他地方调用这个过程
DimstrTmpAsStringcheckValue(strTmp)Sub过程的声明声明Sub过程的语法如下所示:[访问修饰符]Sub过程名([参数列])
…
…EndSub访问修饰符可以是Public、Protected、Friend、ProtectedFriend或Private。默认情况下它们是Public。参数声明在声明过程中,我们需要定义一个参数列,参数列由若干个参数组成,各个参数之间用逗号隔开。使用参数的目的是用于从呼叫代码中传递信息(数据)给被调用的过程。当然,如果你不需要传递信息的话,参数列可以为空,但是,过程后跟的括号必须保留。参数列表中每个参数的语法如下所示:[ByVal|ByRef]参数名As参数类型ByVal:ByVal关键字用于声明该参数是值传递机制。ByVal是参数声明中的默认值。ByRef:ByRef关键字用于声明该参数是引用传递机制。过程调用调用Sub过程只需使用过程名即可,语法如下所示:[Call]过程名[(参数列)]例如:checkValue(strTmp)传值调用传值调用,就是在进行过程调用时,首先把实参的值拷贝一份到被调用过程的形参中,被调用过程执行时,不会改变程序中原先变量的值。举例如下:‘声明传值调用过程swapcall,用于交换两个整数的值
PublicSubswapcall(ByValintAAsInteger,ByValintBAsInteger)DimstrTmpAsStringstrTmp="在sub过程中交换之前,A=:"&intA&Chr(10)strTmp=strTmp&"在sub过程中交换之前,B=:"&intB&Chr(10)DimintTmpAsInteger
‘交换变量intA、intB的值
intTmp=intAintA=intBintB=intTmpstrTmp=strTmp&"在sub过程中交换之后,A=:"&intA&Chr(10)strTmp=strTmp&"在sub过程中交换之后,B=:"&intBMessageBox.Show(strTmp)EndSub
‘添加一个Button,然后在Click事件的处理程序中写入代码如下:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimintXAsInteger=1DimintYAsInteger=2DimstrTmpAsString
‘Chr(10)代表换行符,起换行作用
strTmp="在传呼代码中传值调用之前,X=:"&intX&Chr(10)strTmp=strTmp&"在传呼代码中传值调用之前,Y=:"&intY&Chr(10)
‘调用swapcall过程swapcall(intX,intY)strTmp=strTmp&"在传呼代码中传值调用之后,X=:"&intX&Chr(10)strTmp=strTmp&"在传呼代码中传值调用之后,Y=:"&intYMessageBox.Show(strTmp)EndSub运行上面程序,结果如下:引用调用在进行引用调用时,形参其实就是实参的别名,他们指向相同的内存区,在调用过程的时候,修改了形参的值,也就等于修改了实参的值。即在被调用过程执行时,会直接改变程序中原先变量的值。举例如下:
‘声明引用调用过程swapcall,用于交换两个整数的值
PublicSubswapcall(ByRefintAAsInteger,ByRefintBAsInteger)DimstrTmpAsStringstrTmp="在sub过程中交换之前,A=:"&intA&Chr(10)strTmp=strTmp&"在sub过程中交换之前,B=:"&intB&Chr(10)DimintTmpAsInteger
‘交换变量intA、intB的值
intTmp=intAintA=intBintB=intTmpstrTmp=strTmp&"在sub过程中交换之后,A=:"&intA&Chr(10)strTmp=strTmp&"在sub过程中交换之后,B=:"&intBMessageBox.Show(strTmp)EndSub‘添加一个Button,然后在Click事件的处理程序中写入代码如下:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimintXAsInteger=1DimintYAsInteger=2DimstrTmpAsStringstrTmp="在传呼代码中引用调用之前,X=:"&intX&Chr(10)strTmp=strTmp&"在传呼代码中引用调用之前,Y=:"&intY&Chr(10)
‘调用swapcall过程swapcall(intX,intY)strTmp=strTmp&"在传呼代码中引用调用之后,X=:"&intX&Chr(10)strTmp=strTmp&"在传呼代码中引用调用之后,Y=:"&intYMessageBox.Show(strTmp)EndSub运行上面程序,结果如下:Function过程Function过程是包含在Function语句和EndFunction语句之间的一系列语句块。每次调用过程时都执行过程中的语句,从Function语句后的第一个可执行语句开始,到遇到的第一个EndFunction、ExitFunction或RETurn语句结束。Function过程与Sub过程相似,但Function过程还向调用程序返回一个值。声明Function过程的语法如下所示:[访问修饰符]Function过程名([参数列])As返回类型
…
…EndFunction返回值Function过程有两种方式返回值:一、它在过程的一个或多个语句中给自己的过程名赋值。直到执行了ExitFunction或EndFunction语句,控制才返回给调用程序,如下面的示例所示:[访问修饰符]Function过程名
([参数列])As返回类型
'...
过程名
=表达式
'...EndFunction二、使用RETurn语句指定返回值,并立即将控制返回给调用程序,如下面的示例所示:[访问修饰符]Function过程名([参数列])As返回类型
'...RETurn表达式
'...EndFunction调用Function过程调用Function过程的方法是将其名称和参数放在赋值语句的右边或表达式中。有时候,调用Function过程时,可以不使用它的返回值。这样,调用Function过程就像调用Sub过程相象。Function过程的调用举例如下,用于求两科成绩的平均分:PublicFunctionadd(ByValintAAsInteger,ByValintBAsInteger)AsInteger
‘判断输入的分数是否是负数,如果是负数则表明是有问题的分数,取值为0分
IfintA<=0AndintB<=0Thenadd=0ExitFunctionEndIfIfintA<=0Thenadd=intBEndIfIfintB<=0Thenadd=intAEndIfEndFunctionPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimsngAvgAsSingleDimintX,intYAsIntegerintX=90intY=80sngAvg=add(intX,intY)/2‘将add过程的返回值赋值给sngAvg变量
MessageBox.Show("平均分为:"&sngAvg)EndSub使用数组作为参数如果需要将一组数据传递给过程,可以选择数组作为参数,书本P106。举例如下,说明如何使用普遍数组作为参数,进行过程调用:PublicFunctionavgAge(ByValintAge()AsInteger)AsSingleDimstrTmpAsString="每个学生的年龄是:"DimintSumAsInteger=0DimintIAsInteger=0ForintI=0ToUBound(intAge)'通过UBound函数取得数组的最大可用下标,数组拥有的元素个数为UBound(intAge)+1intSum+=intAge(intI)strTmp=strTmp&intAge(intI)&""
‘intAge(intI)+=1‘使每个学生的年龄加1NextstrTmp=strTmp&Chr(10)&"平均年龄是:"&intSum/(UBound(intAge)+1)MessageBox.Show(strTmp)avgAge=0EndFunctionPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimintTmp()AsInteger={18,19,20,21}'定义了intAge数组用于保存学生的年龄
avgAge(intTmp)
‘用数组作为参数进行过程调用后,显示原数组被修改的情况
DimstrTmpAsString="每个学生的年龄是:"DimintSumAsInteger=0DimintIAsInteger=0ForintI=0ToUBound(intTmp)intSum+=intTmp(intI)strTmp=strTmp&intTmp(intI)&""NextstrTmp=strTmp&Chr(10)&"平均年龄是:"&intSum/(UBound(intTmp)+1)MessageBox.Show(strTmp)EndSub注意使用数组作为参数与之前我们使用其他变量作为参数的方法几乎一样,但是,有一点必须要注意,就算你在参数声明时使用了ByVal关键字,但是,实际上它并不是值传递,而是地址传递。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimarrT(2)AsIntegerarrT(0)=1arrT(1)=1MessageBox.Show("调用前"&arrT(0)&""&arrT(1))add(arrT)MessageBox.Show("调用后"&arrT(0)&""&arrT(1))EndSubPublicSubadd(ByValarr()AsInteger)arr(0)=2arr(1)=2
‘ReDimarr(5)
比较如果用ByRef的结果
MessageBox.Show("过程中"&arr(0)&""&arr(1))EndSub可选参数Optional:Optional关键字用于将一个参数声明为可选的参数。但要注意,我们可以声明任意多个可选参数,但是,如果指明了某一个参数为可选的,则在参数列中,它后面的所有的参数也必须是可选的。而且,在声明可选参数时,必须要给可选参数一个默认值。
举例如下,要声明一个过程用于求出某个学生的总分,但是,在所学的课程中,有一门“商务礼仪”的课程和一门“现代经济与政治”的课程是选修科,也就是说,有些学生有成绩,但有些学生是没有成绩的:PublicFunctiontotalScore(ByValsngEnglishAsSingle,ByValsngMathAsSingle,OptionalByValsngProtocolAsSingle=0,OptionalByValsngEconomyasAsSingle=0)AsSingle'......'......EndFunction使用参数数组通常,在调用过程时,所包含的参数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44083.4-2024道路车辆儿童约束系统以及与车辆固定系统配装的使用性评价方法和规则第4部分:增高椅和增高垫
- 生产加工合同书范本(35篇)
- 房屋购房合同
- 设备供货服务合同签订规范
- 设备采购及安装合同
- 设计项目进度跟踪
- 语文学习攻略与经验
- 财产抵押借款协议模板
- 购房补充协议的撰写要点
- 购销合同中的税收风险分析
- 第14课 明清时期的经济、科技与文化
- 《中国健康生活方式预防心血管代谢疾病指南》
- 中国航天的发展史课件
- 00015-英语二自学教程-unit5
- 干部人事档案转递单表样
- 三战课件(舆论战、法律战、心理战)
- 第12课+明朝的兴亡-【中职专用】《中国历史》(高教版2023基础模块)
- 2022年广州市白云区赴珠海招聘中小学事业编制教师考试真题
- 高三英语一轮复习阅读理解天天练(Agriculture+农业 Society社会)选自China+Daily
- 慢性病(高血压、糖尿病)培训资料
- 《创新创业基础-理论、案例与训练》教案 第10课 选择商业模式
评论
0/150
提交评论