基于VB的桌面系统开发方案_T1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1基于VB的桌面系统开发方案用户输入的有效性检验2课题目标理解应用程序中窗体的作用分析数据有效性验证的目的以及两种实现数据有效性验证的技术学习使用掩码编辑控件理解应用程序中菜单的重要性回顾如何使用数据控件从数据库中访问数据回顾如何创建MDI应用程序3设计一个良好的界面用户界面–用户和应用程序之间的连接4属性设置控件的特征和状态共有的属性:–Left–Top–Height–Width–Name5属性(续)三类属性:–只在设计时才可访问的属性–只在运行时才可访问的属性–可以在任何时候访问的属性象状态条这样的控件在属性窗口中有一个自定义的按钮,它将帮助你为控件设定一些额外的属性6属性窗口在设计时设置控件属性7在运行时设置控件属性在运行时,属性也可以被改变在程序中可以使用一个赋值语句来设置新的属性值cmdButton1.Enabled=True控件的名称属性只能在设计时设置8事件在应用程序中发出的任何用户行为一条消息可以是:–按下了键盘的一个键–点击了鼠标按钮。KeyDown事件会从窗口接收参数:PrivateSubCommand1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)EndSub9方法在部件接口中产生好了的代码可以根据用户要求来调用窗体的方法:–Load初始化和加载一个窗体到内存,但是不在屏幕上显示这个窗体LoadForm110方法(续)–Unload把窗体从内存中卸载UnloadForm1或者UnloadMe–Hide从屏幕上隐藏一个窗体,同时还在内存中保持它的值Form1.Hide或者Me.Hide11方法(续)–Show加载窗体并把它显示到屏幕上。Form1.ShowvbModal12窗体事件窗体事件的触发顺序如下:–Initialize–Load–Activate–Deactivate–QueryUnload–Unload–Terminate13窗体事件(续)Initialize–在窗体加载和显示之前触发。–在整个应用程序的运行过程中这个事件只触发一次。Form1.Show或者LoadForm114窗体事件(续)Load–完成窗体显示之前需要完成的动作。–在整个应用程序的运行过程中可以触发多次。PrivateSubForm_Load()Text1.text=“Helloeverybody”Endsub15窗体事件(续)Activate/Deactivate–用户在同一个应用程序的两个或多个窗体之间移动时触发–Activate事件发生在GotFocus事件之前–Deactivate事件在LostFocus事件之后发生–窗体必须可见QueryUnload–在Unload事件之前发生16窗体事件(续)PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)IfUnloadMode=vbFormCodeThenMsgBoxYouinvokedtheUnloadstatementCancel=FalseEndIfEndSub参数值说明VbFormControlMenu0窗体的控件菜单中的Close命令被选中VbFormCode1代码中调用了Unload语句VbAppWindows2当前的窗口操作系统被终止VbAppTaskManager3应用程序被任务管理器终止VbFormMDIForm4因为MDI父窗体的终止导致MDI子窗体的终止17窗体事件(续)Terminate–在窗体的所有实例从内存中清除时发生–在Unload事件后发生SetForm1=Nothing–在程序非正常结束时,即便窗体的实例已从内存中清除,也不会触发18控件的事件KeyDown–当用户按下键盘上一个键时发生。PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=vbKeyHomeThenMsgBoxYoupressedtheHomekeyEndIfEndSub19控件的事件(续)KeyUp–在用户松开键盘上按下的键时发生。PrivateSubText1_KeyUp(KeyCodeAsInteger,ShiftAsInteger)StatickpAsIntegerkp=kp+1Label1.Caption=kpEndSub20控件的事件(续)KeyPress–在KeyDown和KeyUp事件之间发生。PrivateSubText1_KeyPress(KeyAsciiAsInteger)txt=Chr(KeyAscii)KeyAscii=Asc(UCase(txt))EndSub21控件的事件(续)MouseDown–在鼠标键被按下时触发。PrivateSubText1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1ThenMsgBoxYoupressedtheLeftmousebutton”ElseIfButton=2ThenMsgBoxYoupressedtheRightmousebutton”EndIfEndSub22控件的事件(续)MouseUp–在用户松开鼠标键时发生。PrivateSubText1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Text2.Text=EmptyEndSub23控件的事件(续)Click–在用户单击鼠标左键时发生。PrivateSubCommand1_Click()Command1.Caption=HiEndSub24控件的事件(续)DblClick–在用户双击鼠标键时发生。–同时触发两次Click和MouseUp事件PrivateSubForm_Load()List1.AddItemJaneList1.AddItemChrisList1.AddItemSusieList1.AddItemEricList1.AddItemWillyEndSubPrivateSubList1_DblClick()List1.RemoveItemList1.ListIndexEndSub25数据有效性检验保证了应用程序中输入的数据是准确的并且是有效的类型检验方法:–窗体级有效性检验在用户输入窗体中所有的域之后再进行验证–域级有效性检验在用户输入每个域的数据后就进行有效性检验26有效性检验的方法LostFocus事件–在控件或窗体失去焦点时触发PrivateSubtxtCode_LostFocus()IfLen(txtCode.Text)4ThenBeepMsgBoxCodeshouldconsistof4characterstxtCode.SetFocusEndIfEndSub27有效性检验的方法(续)SetFocus事件–在表级和域级有效性检验中,焦点常常被重新置回到无效数据所在的域IftxtName.Text=ThenBeepMsgBoxNameshouldnotbeemptytxtName.SetFocusEndIf28窗体级有效性检验KeyPress事件–在一个事件对应的控件获得焦点时截取击键PrivateSubobject_KeyPress(KeyAsciiAsInteger)KeyDown和KeyUp事件–跟踪没有ASCII值的键的输入–KeyUp事件在用户松开一个按下的键时发生–KeyDown事件在KeyUp事件发生之前至少发生一次29窗体级有效性检验(续)KeyPreview属性–如果窗体中所有的控件都是有效的和可见的,则窗体只在KeyPreview属性为真时触发键盘事件,此时窗体的键盘事件优于控件的键盘事件PrivateSubForm_Load()KeyPreview=TrueEndSub30窗体级有效性检验(续)PrivateSubForm_KeyPress(KeyAsciiAsInteger)SelectCaseKeyAsciiCase13MsgBoxEnterwaspressed”Case8MsgBoxBackspacewaspressed”EndSelectEndSub31窗体级有效性检验(续)根据用户的输入启用和禁用控件–提供可见的信息来告诉用户要做什么。PrivateSubForm_Load()KeyPreview=TrueEndSub32窗体级有效性检验(续)PrivateSubForm_KeyUp(KeyCodeAsInteger,ShiftAsInteger)IfText1.Text=ThencmdSave.Enabled=FalseElsecmdSave.Enabled=TrueEndIfEndSub33字段级有效性检验文本框控件的属性–可以对用户的输入进行限制的设计属性MaxLengthPasswordCharLocked字段级有效性检验事件–用来进行有效性检验和输入字符的格式检验。–KeyPress,KeyDown和KeyUp事件34字段级有效性检验(续)掩码编辑控件–限制用户输入的数据的类型–帮助检验用户的输入的属性:Mask属性–常用于在设计时检验如日期的输入或一些可能有标准输入格式的值35域级有效性检验(续)–一个日期的输入格式:MaskEdBox1.Mask=##/##/####”–按下面所示的格式接受日期:–Mask属性如果设置为“”时,控件就和标准文本框控件一样。–一旦定义了输入格式,就会在每个指代字符的下面加上下划线–在真正输入时只需使用一个相同类型的字符来取代这个指代字符就可以了36字段级有效性检验(续)Format属性–用来指定控件中输入的数字、日期、时间和文本的显示或打印格式Text和ClipText属性–Text属性用来返回按照掩码格式输入的数据–ClipText属性返回的只是输入的数据–例如:掩码控件的Mask属性为″##/##/####″当该掩码控件显示的内容为12/12/1999时Text属性返回的是12/12/1999ClipText返回的是1212199937域级有效性检验(续)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=vbRightButtonThenPopupMenumnuEditEndIfEndSub46在运行时修改菜单菜单可能因为下面的原因需要修改:–改变菜单项的标题–改变菜单项的Ch

1 / 60
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功