基于VB的桌面系统开发方案T.ppt_第1页
基于VB的桌面系统开发方案T.ppt_第2页
基于VB的桌面系统开发方案T.ppt_第3页
基于VB的桌面系统开发方案T.ppt_第4页
基于VB的桌面系统开发方案T.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,基于VB的桌面系统开发方案,用户输入的有效性检验,1,2,课题目标,理解应用程序中窗体的作用分析数据有效性验证的目的以及两种实现数据有效性验证的技术学习使用掩码编辑控件理解应用程序中菜单的重要性回顾如何使用数据控件从数据库中访问数据回顾如何创建MDI应用程序,3,设计一个良好的界面,用户界面用户和应用程序之间的连接,4,属性,设置控件的特征和状态共有的属性:LeftTopHeightWidthName,5,属性(续),三类属性:只在设计时才可访问的属性只在运行时才可访问的属性可以在任何时候访问的属性象状态条这样的控件在属性窗口中有一个自定义的按钮,它将帮助你为控件设定一些额外的属性,6,属性窗口,在设计时设置控件属性,7,在运行时设置控件属性,在运行时,属性也可以被改变在程序中可以使用一个赋值语句来设置新的属性值cmdButton1.Enabled=True控件的名称属性只能在设计时设置,8,事件,在应用程序中发出的任何用户行为一条消息可以是:按下了键盘的一个键点击了鼠标按钮。KeyDown事件会从窗口接收参数:PrivateSubCommand1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)EndSub,9,方法,在部件接口中产生好了的代码可以根据用户要求来调用窗体的方法:Load初始化和加载一个窗体到内存,但是不在屏幕上显示这个窗体LoadForm1,10,方法(续),Unload把窗体从内存中卸载UnloadForm1或者UnloadMeHide从屏幕上隐藏一个窗体,同时还在内存中保持它的值Form1.Hide或者Me.Hide,11,方法(续),Show加载窗体并把它显示到屏幕上。Form1.ShowvbModal,12,窗体事件,窗体事件的触发顺序如下:InitializeLoadActivateDeactivateQueryUnloadUnloadTerminate,13,窗体事件(续),Initialize在窗体加载和显示之前触发。在整个应用程序的运行过程中这个事件只触发一次。Form1.Show或者LoadForm1,14,窗体事件(续),Load完成窗体显示之前需要完成的动作。在整个应用程序的运行过程中可以触发多次。PrivateSubForm_Load()Text1.text=“Helloeverybody”Endsub,15,窗体事件(续),Activate/Deactivate用户在同一个应用程序的两个或多个窗体之间移动时触发Activate事件发生在GotFocus事件之前Deactivate事件在LostFocus事件之后发生窗体必须可见QueryUnload在Unload事件之前发生,16,窗体事件(续),PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)IfUnloadMode=vbFormCodeThenMsgBoxYouinvokedtheUnloadstatementCancel=FalseEndIfEndSub,17,窗体事件(续),Terminate在窗体的所有实例从内存中清除时发生在Unload事件后发生SetForm1=Nothing在程序非正常结束时,即便窗体的实例已从内存中清除,也不会触发,18,控件的事件,KeyDown当用户按下键盘上一个键时发生。PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=vbKeyHomeThenMsgBoxYoupressedtheHomekeyEndIfEndSub,19,控件的事件(续),KeyUp在用户松开键盘上按下的键时发生。PrivateSubText1_KeyUp(KeyCodeAsInteger,ShiftAsInteger)StatickpAsIntegerkp=kp+1Label1.Caption=kpEndSub,20,控件的事件(续),KeyPress在KeyDown和KeyUp事件之间发生。PrivateSubText1_KeyPress(KeyAsciiAsInteger)txt=Chr(KeyAscii)KeyAscii=Asc(UCase(txt)EndSub,21,控件的事件(续),MouseDown在鼠标键被按下时触发。PrivateSubText1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1ThenMsgBoxYoupressedtheLeftmousebutton”ElseIfButton=2ThenMsgBoxYoupressedtheRightmousebutton”EndIfEndSub,22,控件的事件(续),MouseUp在用户松开鼠标键时发生。PrivateSubText1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Text2.Text=EmptyEndSub,23,控件的事件(续),Click在用户单击鼠标左键时发生。PrivateSubCommand1_Click()Command1.Caption=HiEndSub,24,控件的事件(续),DblClick在用户双击鼠标键时发生。同时触发两次Click和MouseUp事件PrivateSubForm_Load()List1.AddItemJaneList1.AddItemChrisList1.AddItemSusieList1.AddItemEricList1.AddItemWillyEndSubPrivateSubList1_DblClick()List1.RemoveItemList1.ListIndexEndSub,25,数据有效性检验,保证了应用程序中输入的数据是准确的并且是有效的类型检验方法:窗体级有效性检验在用户输入窗体中所有的域之后再进行验证域级有效性检验在用户输入每个域的数据后就进行有效性检验,26,有效性检验的方法,LostFocus事件在控件或窗体失去焦点时触发PrivateSubtxtCode_LostFocus()IfLen(txtCode.Text)4ThenBeepMsgBoxCodeshouldconsistof4characterstxtCode.SetFocusEndIfEndSub,27,有效性检验的方法(续),SetFocus事件在表级和域级有效性检验中,焦点常常被重新置回到无效数据所在的域IftxtName.Text=ThenBeepMsgBoxNameshouldnotbeemptytxtName.SetFocusEndIf,28,窗体级有效性检验,KeyPress事件在一个事件对应的控件获得焦点时截取击键PrivateSubobject_KeyPress(KeyAsciiAsInteger)KeyDown和KeyUp事件跟踪没有ASCII值的键的输入KeyUp事件在用户松开一个按下的键时发生KeyDown事件在KeyUp事件发生之前至少发生一次,29,窗体级有效性检验(续),KeyPreview属性如果窗体中所有的控件都是有效的和可见的,则窗体只在KeyPreview属性为真时触发键盘事件,此时窗体的键盘事件优于控件的键盘事件PrivateSubForm_Load()KeyPreview=TrueEndSub,30,窗体级有效性检验(续),PrivateSubForm_KeyPress(KeyAsciiAsInteger)SelectCaseKeyAsciiCase13MsgBoxEnterwaspressed”Case8MsgBoxBackspacewaspressed”EndSelectEndSub,31,窗体级有效性检验(续),根据用户的输入启用和禁用控件提供可见的信息来告诉用户要做什么。PrivateSubForm_Load()KeyPreview=TrueEndSub,32,窗体级有效性检验(续),PrivateSubForm_KeyUp(KeyCodeAsInteger,ShiftAsInteger)IfText1.Text=ThencmdSave.Enabled=FalseElsecmdSave.Enabled=TrueEndIfEndSub,33,字段级有效性检验,文本框控件的属性可以对用户的输入进行限制的设计属性MaxLengthPasswordCharLocked字段级有效性检验事件用来进行有效性检验和输入字符的格式检验。KeyPress,KeyDown和KeyUp事件,34,字段级有效性检验(续),掩码编辑控件限制用户输入的数据的类型帮助检验用户的输入的属性:Mask属性常用于在设计时检验如日期的输入或一些可能有标准输入格式的值,35,域级有效性检验(续),一个日期的输入格式:MaskEdBox1.Mask=#/#/#”按下面所示的格式接受日期:Mask属性如果设置为“”时,控件就和标准文本框控件一样。一旦定义了输入格式,就会在每个指代字符的下面加上下划线在真正输入时只需使用一个相同类型的字符来取代这个指代字符就可以了,36,字段级有效性检验(续),Format属性用来指定控件中输入的数字、日期、时间和文本的显示或打印格式Text和ClipText属性Text属性用来返回按照掩码格式输入的数据ClipText属性返回的只是输入的数据例如:掩码控件的Mask属性为#/#/#当该掩码控件显示的内容为12/12/1999时Text属性返回的是12/12/1999ClipText返回的是12121999,37,域级有效性检验(续),Validate事件最简单的数据有效性检验方法阻止焦点向下一个控件移动,除非所有的有效性规则都满足需进行有效性验证的控件的CausesValidation属性必须设置为真,38,设计菜单,设计菜单项时注意下面几点:菜单项应该按照功能分组每组中的菜单项应该少于或等于五项每个功能之间使用分隔条隔开VisualBasic可以创建最多六级子菜单,39,创建设计时的菜单,40,使用菜单编辑器创建的菜单,快捷键,41,菜单项属性,Checked指示菜单项是处于打开或是关闭状态Enabled决定一个菜单项是否可访问Visible决定用户是否可以看见该菜单项,42,菜单项属性(续),WindowList用来保存一个打开窗口的列表并且标记当前的活动窗口Index决定控件数组中菜单项的索引HelpContextID指定在菜单项被选中时,按下F1显示的帮助主题,43,菜单访问键和快捷键,允许使用键盘来访问菜单项访问键允许我们使用ALT键和菜单中指定的字母来访问菜单项快捷键提供了对菜单项的快捷访问显示在菜单项的右边,44,弹出菜单,在光标所在处单击鼠标的右键时弹出的菜单使用菜单编辑器创建菜单使用PopupMenu方法激活菜单,45,弹出菜单(续),PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=vbRightButtonThenPopupMenumnuEditEndIfEndSub,46,在运行时修改菜单,菜单可能因为下面的原因需要修改:改变菜单项的标题改变菜单项的Checked属性以指示该菜单项是打开的还是关闭的根据程序的状态显示或隐藏菜单项,47,在运行时修改菜单(续),需要改变的属性:Captionmnufile.Caption=&DataFileCheckedmnuFile1.Checked=TrueEnabledmnufile1.Enabled=FalseVisiblemnuFile.Visible=TruemnuFile.Visible=False,48,在运行时添加或删除菜单项,可以通过使用菜单数组来实现运行时向菜单中添加菜单项创建数组中第一个元素对应菜单项的Name属性就是菜单控件数组的名称Load语句用来向数组中添加菜单项Unload语句用来从菜单控件数组中删除菜单项,49,在运行时添加或删除菜单项(添加示例),PrivateSubForm_Load()mnuclear.Enabled=FalseEndSubPrivateSubmnuadd_Click(IndexAsInteger)DimiAsIntegerIfIndex=0Thenmnuclear.Enabled=TrueFori=1To3Loadmnuadd(mnuadd.UBound+1)mnuadd(mnuadd.UBound).Caption=_NewItem&mnuadd.UBoundNextiEndIfEndSub,50,在运行时添加或删除菜单项(删除示例),PrivateSubmnuclear_Click()DimiAsIntegerIfmnuadd.UBound0ThenFori=mnuadd.UBoundTo1Step-1Unloadmnuadd(i)NextiEndIfmnuclear.Enabled=FalseEndSub,51,在运行时添加或删除菜单项(续),52,工具条,由按钮组成,每个按钮对应着应用程序中的某一个菜单项在运行时可以使用Add和Remove方法来添加或删除这些按钮工具条中的按钮有和菜单项一样的事件每个按钮也有唯一的用来标识它的Key和Index属性,53,状态条,显示在窗体的底部,用来显示应用程序的当前状态信息最多可以有16个面板,每个面板中可以包含一串文本或一幅图片面板中用来控制它的外观的最重要的属性是Width、Alignment(文本/图片)、Style和Bevel用来显示日期、时间和键盘状态Panelclick事件单击面板时触发,54,访问数据库,数据控件:允许我们访问和操作数据库可以让我们创建对数据进行更高层次的控制的应用

温馨提示

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

评论

0/150

提交评论