基于VB的桌面系统开发方案T.ppt

上传人:w****2 文档编号:15663790 上传时间:2020-08-28 格式:PPT 页数:60 大小:259KB
收藏 版权申诉 举报 下载
基于VB的桌面系统开发方案T.ppt_第1页
第1页 / 共60页
基于VB的桌面系统开发方案T.ppt_第2页
第2页 / 共60页
基于VB的桌面系统开发方案T.ppt_第3页
第3页 / 共60页
资源描述:

《基于VB的桌面系统开发方案T.ppt》由会员分享,可在线阅读,更多相关《基于VB的桌面系统开发方案T.ppt(60页珍藏版)》请在装配图网上搜索。

1、1,基于VB的桌面系统开发方案,用户输入的有效性检验,1,2,课题目标,理解应用程序中窗体的作用 分析数据有效性验证的目的以及两种实现数据有效性验证的技术 学习使用掩码编辑控件 理解应用程序中菜单的重要性 回顾如何使用数据控件从数据库中访问数据 回顾如何创建MDI应用程序,3,设计一个良好的界面,用户界面 用户和应用程序之间的连接,4,属性,设置控件的特征和状态 共有的属性: Left Top Height Width Name,5,属性(续),三类属性: 只在设计时才可访问的属性 只在运行时才可访问的属性 可以在任何时候访问的属性 象状态条这样的控件在属性窗口中有一个自定义的按钮,它将帮助你

2、为控件设定一些额外的属性,6,属性窗口,在设计时设置控件属性,7,在运行时设置控件属性,在运行时,属性也可以被改变 在程序中可以使用一个赋值语句来设置新的属性值 cmdButton1 . Enabled = True 控件的名称属性只能在设计时设置,8,事件,在应用程序中发出的任何用户行为 一条消息可以是: 按下了键盘的一个键 点击了鼠标按钮。 KeyDown事件会从窗口接收参数 : Private Sub Command1_KeyDown (KeyCode As Integer, Shift As Integer) End Sub,9,方法,在部件接口中产生好了的代码可以根据用户要求来调用

3、窗体的方法 : Load 初始化和加载一个窗体到内存,但是不在屏幕上显示这个窗体 Load Form1,10,方法(续),Unload 把窗体从内存中卸载 Unload Form1 或者 Unload Me Hide 从屏幕上隐藏一个窗体 ,同时还在内存中保持它的值 Form1.Hide 或者 Me.Hide,11,方法(续),Show 加载窗体并把它显示到屏幕上 。 Form1.Show vbModal,12,窗体事件,窗体事件的触发顺序如下: Initialize Load Activate Deactivate QueryUnload Unload Terminate,13,窗体事件(续

4、),Initialize 在窗体加载和显示之前触发 。 在整个应用程序的运行过程中这个事件只触发一次 。 Form1.Show 或者 Load Form1,14,窗体事件(续),Load 完成窗体显示之前需要完成的动作。 在整个应用程序的运行过程中可以触发多次。 Private Sub Form_Load() Text1.text=“Hello everybody” End sub,15,窗体事件(续),Activate/Deactivate 用户在同一个应用程序的两个或多个窗体之间移动时触发 Activate事件发生在GotFocus事件之前 Deactivate事件在LostFocus事件

5、之后发生 窗体必须可见 QueryUnload 在Unload事件之前发生,16,窗体事件(续),Private Sub Form_QueryUnload (Cancel As Integer, UnloadMode As Integer) If UnloadMode = vbFormCode Then MsgBox You invoked the Unload statement Cancel = False End If End Sub,17,窗体事件(续),Terminate 在窗体的所有实例从内存中清除时发生 在Unload事件后发生 Set Form1= Nothing 在程序非正常

6、结束时,即便窗体的实例已从内存中清除,也不会触发,18,控件的事件,KeyDown 当用户按下键盘上一个键时发生。 Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyHome Then MsgBox You pressed the Home key End If End Sub,19,控件的事件(续),KeyUp 在用户松开键盘上按下的键时发生。 Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer) Static

7、 kp As Integer kp = kp + 1 Label1.Caption = kp End Sub,20,控件的事件(续),KeyPress 在KeyDown和KeyUp 事件之间发生。 Private Sub Text1_KeyPress (KeyAscii As Integer) txt = Chr(KeyAscii) KeyAscii = Asc(UCase(txt) End Sub,21,控件的事件(续),MouseDown 在鼠标键被按下时触发。 Private Sub Text1_MouseDown(Button As Integer, Shift As Integer,

8、 X As Single, Y As Single) If Button = 1 Then MsgBox You pressed the Left mouse button” ElseIf Button = 2 Then MsgBox You pressed the Right mouse button” End If End Sub,22,控件的事件(续),MouseUp 在用户松开鼠标键时发生。 Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Text2.Tex

9、t = Empty End Sub,23,控件的事件(续),Click 在用户单击鼠标左键时发生 。 Private Sub Command1_Click() Command1.Caption = Hi End Sub,24,控件的事件(续),DblClick 在用户双击鼠标键时发生。 同时触发两次Click 和MouseUp 事件 Private Sub Form_Load() List1.AddItem Jane List1.AddItem Chris List1.AddItem Susie List1.AddItem Eric List1.AddItem Willy End Sub Pr

10、ivate Sub List1_DblClick() List1.RemoveItem List1.ListIndex End Sub,25,数据有效性检验,保证了应用程序中输入的数据是准确的并且是有效的类型 检验方法: 窗体级有效性检验 在用户输入窗体中所有的域之后再进行验证 域级有效性检验 在用户输入每个域的数据后就进行有效性检验,26,有效性检验的方法,LostFocus事件 在控件或窗体失去焦点时触发 Private Sub txtCode_LostFocus() If Len (txtCode.Text) 4 Then Beep MsgBox Code should consist

11、of 4 characters txtCode.SetFocus End If End Sub,27,有效性检验的方法(续),SetFocus事件 在表级和域级有效性检验中,焦点常常被重新置回到无效数据所在的域 If txtName.Text = Then Beep MsgBox Name should not be empty txtName.SetFocus End If,28,窗体级有效性检验,KeyPress事件 在一个事件对应的控件获得焦点时截取击键 Private Sub object_KeyPress(KeyAscii As Integer) KeyDown和KeyUp事件 跟踪

12、没有ASCII值的键的输入 KeyUp事件在用户松开一个按下的键时发生 KeyDown事件在KeyUp事件发生之前至少发生一次,29,窗体级有效性检验(续),KeyPreview属性 如果窗体中所有的控件都是有效的和可见的,则窗体只在KeyPreview属性为真时触发键盘事件,此时窗体的键盘事件优于控件的键盘事件 Private Sub Form_Load() KeyPreview = True End Sub,30,窗体级有效性检验(续),Private Sub Form_KeyPress (KeyAscii As Integer) Select Case KeyAscii Case 13

13、MsgBox Enter was pressed” Case 8 MsgBox Backspace was pressed” End Select End Sub,31,窗体级有效性检验(续),根据用户的输入启用和禁用控件 提供可见的信息来告诉用户要做什么。 Private Sub Form_Load() KeyPreview = True End Sub,32,窗体级有效性检验(续),Private Sub Form_KeyUp (KeyCode As Integer, Shift As Integer) If Text1.Text = Then cmdSave.Enabled = Fals

14、e Else cmdSave.Enabled = True End If End Sub,33,字段级有效性检验,文本框控件的属性 可以对用户的输入进行限制 的设计属性 MaxLength Password Char Locked 字段级有效性检验事件 用来进行有效性检验和输入字符的格式检验。 KeyPress, KeyDown和KeyUp事件,34,字段级有效性检验(续),掩码编辑控件 限制用户输入的数据的类型 帮助检验用户的输入 的属性: Mask属性 常用于在设计时检验如日期的输入或一些可能有标准输入格式的值,35,域级有效性检验(续),一个日期的输入格式: MaskEdBox1.Mas

15、k = #/#/#” 按下面所示的格式接受日期: Mask属性如果设置为“”时,控件就和标准文本框控件一样。 一旦定义了输入格式,就会在每个指代字符的下面加上下划线 在真正输入时只需使用一个相同类型的字符来取代这个指代字符就可以了,36,字段级有效性检验(续),Format属性 用来指定控件中输入的数字、日期、时间和文本的显示或打印格式 Text和ClipText属性 Text属性用来返回按照掩码格式输入的数据 ClipText属性返回的只是输入的数据 例如: 掩码控件的Mask属性为#/#/# 当该掩码控件显示的内容为12/12/1999 时 Text属性返回的是12/12/1999 Cli

16、pText返回的是12121999,37,域级有效性检验(续),Validate事件 最简单的数据有效性检验方法 阻止焦点向下一个控件移动,除非所有的有效性规则都满足 需进行有效性验证的控件的CausesValidation属性必须设置为真,38,设计菜单,设计菜单项时注意下面几点: 菜单项应该按照功能分组 每组中的菜单项应该少于或等于五项 每个功能之间使用分隔条隔开 Visual Basic可以创建最多六级子菜单,39,创建设计时的菜单,40,使用菜单编辑器创建的菜单,快捷键,41,菜单项属性,Checked 指示菜单项是处于打开或是关闭状态 Enabled 决定一个菜单项是否可访问 Vis

17、ible 决定用户是否可以看见该菜单项,42,菜单项属性(续),WindowList 用来保存一个打开窗口的列表并且标记当前的活动窗口 Index 决定控件数组中菜单项的索引 HelpContextID 指定在菜单项被选中时,按下F1 显示的帮助主题,43,菜单访问键和快捷键,允许使用键盘来访问菜单项 访问键 允许我们使用ALT键和菜单中指定的字母来访问菜单项 快捷键 提供了对菜单项的快捷访问 显示在菜单项的右边,44,弹出菜单,在光标所在处单击鼠标的右键时弹出的菜单 使用菜单编辑器创建菜单 使用PopupMenu方法激活菜单,45,弹出菜单(续),Private Sub Form_Mouse

18、Down(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then PopupMenu mnuEdit End If End Sub,46,在运行时修改菜单,菜单可能因为下面的原因需要修改: 改变菜单项的标题 改变菜单项的Checked 属性以指示该菜单项是打开的还是关闭的 根据程序的状态显示或隐藏菜单项,47,在运行时修改菜单(续),需要改变 的属性: Caption mnufile.Caption = &Data File Checked mnuFile1.Ch

19、ecked = True Enabled mnufile1.Enabled = False Visible mnuFile.Visible = True mnuFile.Visible = False,48,在运行时添加或删除菜单项,可以通过使用菜单数组来实现运行时向菜单中添加菜单项 创建数组中第一个元素对应菜单项的Name属性就是菜单控件数组的名称 Load语句用来向数组中添加菜单项 Unload语句用来从菜单控件数组中删除菜单项,49,在运行时添加或删除菜单项(添加示例),Private Sub Form_Load() mnuclear.Enabled=False End Sub Priv

20、ate Sub mnuadd_Click(Index As Integer) Dim i As Integer If Index = 0 Then mnuclear.Enabled = True For i = 1 To 3 Load mnuadd(mnuadd.UBound + 1) mnuadd (mnuadd.UBound).Caption = _ New Item & mnuadd.UBound Next i End If End Sub,50,在运行时添加或删除菜单项(删除示例),Private Sub mnuclear_Click() Dim i As Integer If mnu

21、add.UBound 0 Then For i = mnuadd.UBound To 1 Step -1 Unload mnuadd(i) Next i End If mnuclear.Enabled = False End Sub,51,在运行时添加或删除菜单项(续),52,工具条,由按钮组成,每个按钮对应着应用程序中的某一个菜单项 在运行时可以使用Add和Remove方法来添加或删除这些按钮 工具条中的按钮有和菜单项一样的事件 每个按钮也有唯一的用来标识它的Key 和 Index属性,53,状态条,显示在窗体的底部,用来显示应用程序的当前状态信息 最多可以有16个面板,每个面板中可以包含一

22、串文本或一幅图片 面板中用来控制它的外观的最重要的属性是Width、Alignment (文本/图片)、Style和Bevel 用来显示日期、时间和键盘状态 Panelclick事件 单击面板时触发,54,访问数据库,数据控件: 允许我们访问和操作数据库 可以让我们创建对数据进行更高层次的控制的应用程序 通过设置数据控件的属性来把数据控件连接到一个指定的数据库中的某个表上 数据感知控件 和数据控件联合起来用于访问数据的控件 绑定 把一个数据感知控件和一个数据控件联系起来的过程,55,多文档界面,在一个窗体容器中包含多个窗体的应用程序 MDI父窗体 窗体容器 MDI子窗体 包含在MDI父窗体中的

23、窗体 只有那些具有Align属性和那些不具有可视界面的控件可以直接放置到MDI窗体中,56,多文档界面(续),Visual Basic应用程序中只能有一个MDI父窗体。 通过设置MDIChild属性为真就可以把一个窗体设为MDI子窗体 在运行时刻,所有这个属性设置为真的窗体都只能在一个MDI窗体内显示 MDI子窗体可以在MDI父窗体内最大化、最小化和移动,57,MDI子窗体的特性,在设计时,可以象操作普通窗体一样对MDI子窗体进行操作 在运行时刻子窗体遵循下列原则: 所有子窗体都只能在父窗体的内部显示 最小化时,子窗体的图标显示在MDI 窗体内 最大化时,子窗体的标题和父窗体的标题合二为一,显示在父窗体的标题上 如果子窗体有自己的菜单,则它会用自己的菜单替换MDI 窗体的菜单条,58,本课总结,基本概念 用户界面 控件 方法 事件 窗体具有下列方法 Load Unload Hide Show,59,本课总结(续),窗体事件一般按照下面的顺序触发 Initialize Load Activate Deactivate QueryUnload Unload Terminate 数据有效性检验方法 窗体级 字段级,60,本课总结(续),掩码编辑控件 弹出式菜单 多文档界面,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!