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

上传人:小飞机 文档编号:6559780 上传时间:2023-11-12 格式:PPT 页数:60 大小:244.66KB
返回 下载 相关 举报
基于VB的桌面系统开发方案T.ppt_第1页
第1页 / 共60页
基于VB的桌面系统开发方案T.ppt_第2页
第2页 / 共60页
基于VB的桌面系统开发方案T.ppt_第3页
第3页 / 共60页
基于VB的桌面系统开发方案T.ppt_第4页
第4页 / 共60页
基于VB的桌面系统开发方案T.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

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

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

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

3、内存,但是不在屏幕上显示这个窗体 Load Form1,10,方法(续),Unload把窗体从内存中卸载 Unload Form1或者Unload MeHide从屏幕上隐藏一个窗体,同时还在内存中保持它的值Form1.Hide或者Me.Hide,11,方法(续),Show加载窗体并把它显示到屏幕上。Form1.Show vbModal,12,窗体事件,窗体事件的触发顺序如下:InitializeLoadActivateDeactivateQueryUnloadUnloadTerminate,13,窗体事件(续),Initialize在窗体加载和显示之前触发。在整个应用程序的运行过程中这个事件只

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

5、b Form_QueryUnload(Cancel As Integer,UnloadMode As Integer)If UnloadMode=vbFormCode ThenMsgBox You invoked the Unload statementCancel=FalseEnd IfEnd Sub,17,窗体事件(续),Terminate在窗体的所有实例从内存中清除时发生在Unload事件后发生 Set Form1=Nothing在程序非正常结束时,即便窗体的实例已从内存中清除,也不会触发,18,控件的事件,KeyDown当用户按下键盘上一个键时发生。Private Sub Text1_

6、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 kp As Integer kp=kp+1 Label1.Caption=kpEnd Sub,20,控件的事件(续),KeyPress在KeyDown和KeyUp 事

7、件之间发生。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,X As Single,Y As Single)If Button=1 ThenMsgBox You pressed the Left mouse button”ElseIf Button=2 ThenMsg

8、Box You pressed the Right mouse button”End IfEnd Sub,22,控件的事件(续),MouseUp在用户松开鼠标键时发生。Private Sub Text1_MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single)Text2.Text=EmptyEnd Sub,23,控件的事件(续),Click在用户单击鼠标左键时发生。Private Sub Command1_Click()Command1.Caption=Hi End Sub,24,控件的事件(续),DblClick在

9、用户双击鼠标键时发生。同时触发两次Click 和MouseUp 事件 Private Sub Form_Load()List1.AddItem Jane List1.AddItem Chris List1.AddItem Susie List1.AddItem Eric List1.AddItem WillyEnd SubPrivate Sub List1_DblClick()List1.RemoveItem List1.ListIndexEnd Sub,25,数据有效性检验,保证了应用程序中输入的数据是准确的并且是有效的类型检验方法:窗体级有效性检验在用户输入窗体中所有的域之后再进行验证域级

10、有效性检验在用户输入每个域的数据后就进行有效性检验,26,有效性检验的方法,LostFocus事件在控件或窗体失去焦点时触发 Private Sub txtCode_LostFocus()If Len(txtCode.Text)4 ThenBeepMsgBox Code should consist of 4 characterstxtCode.SetFocus End IfEnd Sub,27,有效性检验的方法(续),SetFocus事件在表级和域级有效性检验中,焦点常常被重新置回到无效数据所在的域If txtName.Text=ThenBeepMsgBox Name should not

11、be emptytxtName.SetFocusEnd If,28,窗体级有效性检验,KeyPress事件在一个事件对应的控件获得焦点时截取击键 Private Sub object_KeyPress(KeyAscii As Integer)KeyDown和KeyUp事件跟踪没有ASCII值的键的输入 KeyUp事件在用户松开一个按下的键时发生KeyDown事件在KeyUp事件发生之前至少发生一次,29,窗体级有效性检验(续),KeyPreview属性如果窗体中所有的控件都是有效的和可见的,则窗体只在KeyPreview属性为真时触发键盘事件,此时窗体的键盘事件优于控件的键盘事件Private

12、 Sub Form_Load()KeyPreview=TrueEnd Sub,30,窗体级有效性检验(续),Private Sub Form_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 13 MsgBox Enter was pressed”Case 8 MsgBox Backspace was pressed”End SelectEnd Sub,31,窗体级有效性检验(续),根据用户的输入启用和禁用控件提供可见的信息来告诉用户要做什么。Private Sub Form_Load()KeyPreview=TrueEnd Sub,3

13、2,窗体级有效性检验(续),Private Sub Form_KeyUp(KeyCode As Integer,Shift As Integer)If Text1.Text=ThencmdSave.Enabled=False ElsecmdSave.Enabled=True End IfEnd Sub,33,字段级有效性检验,文本框控件的属性可以对用户的输入进行限制 的设计属性MaxLengthPassword CharLocked字段级有效性检验事件用来进行有效性检验和输入字符的格式检验。KeyPress,KeyDown和KeyUp事件,34,字段级有效性检验(续),掩码编辑控件限制用户输入

14、的数据的类型帮助检验用户的输入 的属性:Mask属性常用于在设计时检验如日期的输入或一些可能有标准输入格式的值,35,域级有效性检验(续),一个日期的输入格式:MaskEdBox1.Mask=#/#/#”按下面所示的格式接受日期:Mask属性如果设置为“”时,控件就和标准文本框控件一样。一旦定义了输入格式,就会在每个指代字符的下面加上下划线 在真正输入时只需使用一个相同类型的字符来取代这个指代字符就可以了,36,字段级有效性检验(续),Format属性用来指定控件中输入的数字、日期、时间和文本的显示或打印格式 Text和ClipText属性Text属性用来返回按照掩码格式输入的数据 ClipT

15、ext属性返回的只是输入的数据例如:掩码控件的Mask属性为#/#/#当该掩码控件显示的内容为12/12/1999 时Text属性返回的是12/12/1999 ClipText返回的是12121999,37,域级有效性检验(续),Validate事件最简单的数据有效性检验方法 阻止焦点向下一个控件移动,除非所有的有效性规则都满足需进行有效性验证的控件的CausesValidation属性必须设置为真,38,设计菜单,设计菜单项时注意下面几点:菜单项应该按照功能分组 每组中的菜单项应该少于或等于五项 每个功能之间使用分隔条隔开 Visual Basic可以创建最多六级子菜单,39,创建设计时的菜

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

17、时弹出的菜单使用菜单编辑器创建菜单 使用PopupMenu方法激活菜单,45,弹出菜单(续),Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)If Button=vbRightButton ThenPopupMenu mnuEditEnd IfEnd Sub,46,在运行时修改菜单,菜单可能因为下面的原因需要修改:改变菜单项的标题 改变菜单项的Checked 属性以指示该菜单项是打开的还是关闭的 根据程序的状态显示或隐藏菜单项,47,在运行时修改菜单(续),需要改变 的属

18、性:Captionmnufile.Caption=&Data FileCheckedmnuFile1.Checked=TrueEnabledmnufile1.Enabled=FalseVisiblemnuFile.Visible=True mnuFile.Visible=False,48,在运行时添加或删除菜单项,可以通过使用菜单数组来实现运行时向菜单中添加菜单项创建数组中第一个元素对应菜单项的Name属性就是菜单控件数组的名称Load语句用来向数组中添加菜单项 Unload语句用来从菜单控件数组中删除菜单项,49,在运行时添加或删除菜单项(添加示例),Private Sub Form_Loa

19、d()mnuclear.Enabled=FalseEnd SubPrivate Sub mnuadd_Click(Index As Integer)Dim i As Integer If Index=0 Thenmnuclear.Enabled=TrueFor i=1 To 3Load mnuadd(mnuadd.UBound+1)mnuadd(mnuadd.UBound).Caption=_ New Item&mnuadd.UBoundNext i End IfEnd Sub,50,在运行时添加或删除菜单项(删除示例),Private Sub mnuclear_Click()Dim i As

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

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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号