NET程序设计案例教程——Visual Basic 2005 教学课件 ppt 作者 徐布克 第14章 用户验证和操作控制

上传人:E**** 文档编号:89391104 上传时间:2019-05-24 格式:PPT 页数:27 大小:298KB
返回 下载 相关 举报
NET程序设计案例教程——Visual Basic 2005 教学课件 ppt 作者 徐布克 第14章 用户验证和操作控制_第1页
第1页 / 共27页
NET程序设计案例教程——Visual Basic 2005 教学课件 ppt 作者 徐布克 第14章 用户验证和操作控制_第2页
第2页 / 共27页
NET程序设计案例教程——Visual Basic 2005 教学课件 ppt 作者 徐布克 第14章 用户验证和操作控制_第3页
第3页 / 共27页
NET程序设计案例教程——Visual Basic 2005 教学课件 ppt 作者 徐布克 第14章 用户验证和操作控制_第4页
第4页 / 共27页
NET程序设计案例教程——Visual Basic 2005 教学课件 ppt 作者 徐布克 第14章 用户验证和操作控制_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《NET程序设计案例教程——Visual Basic 2005 教学课件 ppt 作者 徐布克 第14章 用户验证和操作控制》由会员分享,可在线阅读,更多相关《NET程序设计案例教程——Visual Basic 2005 教学课件 ppt 作者 徐布克 第14章 用户验证和操作控制(27页珍藏版)》请在金锄头文库上搜索。

1、2019/5/24,1,Visual Basic.NET 程序设计,第14章 用户验证和操作控制,2019/5/24,2,学习和实践的目标,需求分析要求:“控制操作员是否可以进入系统以及是否可以进行某项操作,可以增加、删除、修改操作员记录,并对其分配操作权限(不可看,不可维护;可看,不可维护;可看,可维护)”。 要为学生成绩管理系统建立一个进行用户验证和操作控制的安全子系统。,2019/5/24,3,实现目标的知识点,事件体系 事件基本概念 事件运行机制 Timer组件、日期和时间 格式化字符串,2019/5/24,4,13.1 实现目标的思路,1. 在数据库的操作员表中维护(增加、删除、修改

2、)每一个可以使用系统的操作员的账户(名称和密码)和操作权限等。 2验证要进入系统的操作员账户。若通过,则可以进一步操作;否则,关闭系统。通过账户验证的操作员还可以自己修改密码。 3通过使能(可用或不可用)菜单项和工具按钮来控制某个操作是否可以进行。,2019/5/24,5,14.2 用户验证和操作控制对象体系,2019/5/24,6,对象本身都具有相对专业和独立的能力。一个对象应该专注于干好自己的事情,不要包揽应该由其他对象完成的事情。相关对象协同工作实现共同的目标是一个好的解决方案。这就存在一个对象间的同步和状态传递的问题。.NET中的事件体系就是用于对象间协同工作的。,14.2 用户验证和

3、操作控制对象体系,2019/5/24,7,14.3.1 房屋中介模型,14.3 典型的事件体系,2019/5/24,8,14.3.1 房屋中介模型,14.3 典型的事件体系,2019/5/24,9,14.3.1 房屋中介模型 事件体系是由4个互相联系的元素提供的:提供事件数据的类、事件委托类、引发事件的类和响应事件的类。 .NET Framework 具有命名与事件相关的类和方法的约定。如果希望引发一个名为 EventName 的事件,需要以下元素: 包含事件数据的类,名为EventNameEventArgs。该类应该从System.EventArgs导出。 事件的委托,名为EventName

4、EventHandler。 引发事件的类。该类必须提供事件声明(EventName)和引发事件(RaiseEvent EventName)的方法。 响应事件的类。该类必须提供事件过程并使其和事件关联。,14.3 典型的事件体系,2019/5/24,10,14.3.2 事件 事件是一对象发送消息通知另一对象操作已发生的机制,可以用于对象间的同步和传递信息。操作可能是由用户交互(例如鼠标单击)引起的,也可能是由某些其他的程序逻辑触发的。引发事件的对象称为事件发送方(客户)。捕获事件并对其做出响应的对象叫做事件接收方(服务)。,14.3 典型的事件体系,2019/5/24,11,14.3.3 委托

5、在事件通信中,事件发送方不知道哪个对象或方法将接收到(处理)它引发的事件。所以需要在源和接收方之间存在一个媒介。.NETFramework 定义了一个特殊的类型(Delegate),称为委托,或称代理,也可称代表。 委托是可保存对方法的引用的类。与其他的类不同,委托类具有一个签名(具有个数、类型和顺序的参数列表),并且它只能对与其签名匹配的方法进行引用。,14.3 典型的事件体系,2019/5/24,12,14.3.3 委托 下面的示例显示了事件委托声明。 Public Delegate Sub AlarmEventHandler(sender As Object, e As AlarmEve

6、ntArgs) 该语法与过程声明的语法相似,但是Delegate关键字通知编译器, AlarmEventHandler是一个委托类型。按照约定,.NETFramework中的事件委托有两个参数:引发事件的源和该事件的数据。,14.3 典型的事件体系,2019/5/24,13,14.3.3 委托 AlarmEventHandler 委托的实例可以绑定到任何一个与其签名匹配的方法上,例如下面的示例中显示的 WakeMeUp 类的 AlarmRang 方法。 Public Class WakeMeUp AlarmRang具有和 AlarmEventHandler相同的签名 Public Sub Al

7、armRang(sender As Object, e As AlarmEventArgs) End Sub End Class,14.3 典型的事件体系,2019/5/24,14,14.3.4 声明事件和引发事件 紧接着上一节的例子,使用 Event 关键字在类中声明事件,如下面的示例所示: Public Event AnEvent(sender As Object, e As AlarmEventArgs) 或者: Public Event AnEvent As AlarmEventHandler 两者是等价的声明。 事件就像是通告已发生重要情况的消息。广播该消息的行为称为“引发”事件。在

8、 Visual Basic中,使用RaiseEvent语句引发事件,如下面的示例所示: RaiseEvent AnEvent(Me,Nothing) 任何能引发事件的对象都是事件发送方,也称“事件源”,上例中的关键字Me表示事件源是引发事件的对象本身。窗体、控件和用户定义的对象都是事件发送器。,14.3 典型的事件体系,2019/5/24,15,14.3.5 注册事件处理程序 要在应用程序中使用事件,必须提供一个事件处理程序(事件处理方法),该处理程序执行程序逻辑以响应事件并向事件源注册事件处理程序。 事件处理程序是相应事件发生时调用的过程。可以将任何带有匹配签名的有效子例程用作事件处理程序。

9、可是,不能将函数用作事件处理程序,因为它不能将值返回给事件源。 Visual Basic采用标准命名约定对事件处理程序进行命名,即用下画线将事件发送方和事件的名称组合起来。 在事件处理程序生效之前,首先必须使用Handles或AddHandler语句注册事件,即将事件与事件处理程序相关联。 WithEvents语句和Handles子句提供了陈述性指定事件处理程序的方法。,14.3 典型的事件体系,2019/5/24,16,14.3.6 自定义事件数据 如果事件没有任何关联数据,则引发事件的类使用System.EventHandler作为委托,并将System.EventArgs作为事件数据。

10、需要传递数据的事件使用从事件数据类型的EventArgs派生的类以及相应的事件委托类型。 发送方和事件变量参数向事件处理程序提供有关鼠标事件的详细信息。 控制台应用程序阐释了如何使用自定义事件数据FireEventArgs通过事件机制传递房型和编号的。,14.3 典型的事件体系,2019/5/24,17,14.4 实现用户验证,14.4.1 操作界面 用户启动系统,首先要面对登录窗体,如图14-8所示,验证要进入系统的操作员账户。若通过,则可以进一步操作;否则,关闭系统。通过账户验证的操作员还可以自己修改密码。,2019/5/24,18,14.4.2 事件模型和代码实现(详见教材P209) 根

11、据验证结果决定是否允许用户进入系统并进行权限控制的主控对象要和接收用户账户信息的登录对象协同工作,它们只起同步作用,不通过事件数据交换信息用户验证事件模型如图 :,14.4 实现用户验证,2019/5/24,19,14.5.1 操作界面 主控对象通过使能(可用或不可用)菜单项和工具按钮来控制某个操作是否可以进行,而操作权限是由增改操作员对象维护的,增改操作员窗体如图 :,14.5 实现操作控制,2019/5/24,20,14.5.2 事件模型和代码实现 若当前登录的操作员权限被修改了,要及时通过主控对象体现权限控制的效果。 另外,由于声明和引发事件的工作在“frm增改操作员”的父类“frm增改

12、”中进行,其作用会影响到“frm增改”的子类们,可以利用这个时机一并解决第七章“更新学生成绩档案(二)”中解决得并不完美的“操作结果及时反映到浏览对象中”问题。,14.5 实现操作控制,2019/5/24,21,14.5.2 事件模型和代码实现(详见教材P213) 根据面向对象的思想,对象是具有相对独立功能的实体,自己的事情应该自己干。 frm浏览 类主要功能是直观地浏览系统信息,而以前开发的代码中将“操作结果及时反映到浏览对象中”这一功能放在了负责增加、删除、修改的“frm增改”和“frm删除”类中了。现在利用事件机制可以很好地解决这一问题了权限控制事件模型如图:,14.5 实现操作控制,2

13、019/5/24,22,14.5.2 事件模型和代码实现,14.5 实现操作控制,2019/5/24,23,14.6.1 Timer组件、日期和时间 现在需要自动地将当前的日期和时间显示在主控窗体的状态栏上。 .NET框架提供了一个DateTime静态类,解决系统需要获取/设置日期和时间的问题。其属性如表14-2所示。(详见教材P216),14.6 补充内容,2019/5/24,24,14.6.2 字符串格式化 .NET Framework提供了一种一致、灵活而且全面的方式,能够将任何数值、枚举以及日期和时间等基本数据类型表示为字符串。格式化由格式说明符字符的字符串控制,该字符串指示如何表示基

14、类型值。例如,格式说明符指示:是否应该用科学记数法来表示格式化的数字,或者,格式化的日期在表示月份时应该用数字还是用名称。 ToString方法可以使用格式字符串指示如何转换值。,14.6 补充内容,2019/5/24,25,14.6.2 字符串格式化 1数字格式字符串 数字格式字符串用于控制在将数值数据类型表示为字符串时产生的格式化。 2日期与时间格式字符串 日期与时间格式字符串用于控制将日期或时间表示为字符串时所导致的格式化。,14.6 补充内容,2019/5/24,26,14.6.3 构造方法和析构方法 构造方法和析构方法控制对象的创建和毁坏。 1在使用新的类实例(即对象)之前,通常必须

15、对其执行初始化任务。常见的初始化任务包括打开文件、连接到数据库以及读取注册表项的值。Visual Basic 2005 使用名为New的构造方法(可控制初始化的特殊方法)控制新对象的初始化。 当对象离开范围之后,将由公共语言运行库(CLR)释放。Visual Basic 2005 使用名为Finalize的析构方法控制系统资源的释放。,14.6 补充内容,2019/5/24,27,14.6.3 构造方法和析构方法 2构造方法。若要为类创建构造方法,请在类定义的任何位置创建名为 Sub New 的过程。若要创建参数化构造方法,请像为其他任何过程指定参数那样为 Sub New 指定参数的名称和数据类型 3析构方法。CLR中的垃圾回收器会自动定期释放不使用的资源,所以一般不需要自定义主要用来释放资源的析构过程。,14.6 补充内容,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号