《VB程序设计第6章对话框的设计.ppt》由会员分享,可在线阅读,更多相关《VB程序设计第6章对话框的设计.ppt(71页珍藏版)》请在三一办公上搜索。
1、第6章 对话框的设计,第6章 对话框的设计,6.1 知识要点6.2 习题与解答6.3 实训指导6.4 测验题,6.1知识要点,1、预定义对话框 预定义对话框是系统已经设计好的对话框,它们可以通过程序执行具体的函数来被显示。在Visual Basic 6.0中,预定义对话框包含输入对话框和消息框。,(1)输入对话框创建输入对话框的标准函数是InputBox函数,该函数显示一个接收用户输入的对话框,对话框中显示提示文本,等待用户输入或按下按钮,并返回文本框的内容。InputBox函数的语法格式为:InputBox(prompt,title,default,xpos,ypos,helpfile,co
2、ntext),其中:Prompt为必需的字符串表达式参数,提供显示在对话框中的提示文本。Title为可选字符串表达式参数,提供标题显示在对话框的标题栏中。Default为可选字符串表达式参数,提供输入框的缺省输入文本。Xpos和Ypos都是可选的数值表达式,成对出现,指出对话框左上角的屏幕坐标。InputBox函数返回文本框中输入的内容,为字符串类型。,(2)消息框创建消息框的标准函数是MsgBox函数,该函数在对话框中显示消息,等待用户按下按钮,并返回一个整数来表示用户按下了哪一个按钮。MsgBox函数的语法格式为:MsgtBox(prompt,buttons,title,helpfile,
3、context)其中:Prompt是必要的字符串表达式参数,作为显示在对话框中的消息。,Buttons是可选参数,该数值表达式是分别代表显示按钮形式、使用图标样式、缺省按钮样式和对话框模式的四个数值的和。Title是可选参数。该字符串表达式作为标题显示在消息框的标题栏中。MsgBox函数返回值为16之间的一个整数,表示用户按下了“确定”、“取消”、“终止”、“重试”、“忽略”或“是”按钮。,2、通用对话框(1)通用对话框的使用 把“通用对话框(Common Dialog)”控件添加到工具箱中的方法为:从“工程”菜单中选“部件”命令,或用鼠标右键单击工具箱,选其中“部件”命令,弹出“部件”对话框
4、。,在“部件”对话框的“控件”选项卡中,查找“Microsoft Common Dialog Control 6.0”并将其选中,然后单击“确定”按钮。“通用对话框”提供的六种对话框可以通过设置它的Action属性或调用对应的六种方法来打开。通用对话框的属性、方法和含义见表6-1。,表6-1 通用对话框的属性、方法和作用,(2)“打开”对话框“打开”对话框的功能是指定文件的驱动器、目录、文件扩展名和文件名。使用“打开”对话框时,通常首先对其进行属性设置,各属性含义和设置方法如下:对话框标题(DialogTitle属性):设置对话框的标题,缺省值为“打开”。文件名称(FileName属性):设置
5、“打开”对话框中“文件名”区中的初始文件名,同时也能返回用户在对话框中选中的文件名。,初始化路径(InitDir属性):设置初始目录,同时也能返回用户选择的目录名。过滤器(Filter属性):设置对话框中的文件列表中显示的文件类型。设置过滤器属性的格式为:description1|filter1|description2|filter2其中,description是在“打开”对话框中的文件类型列表框中显示的字符串。,标志(Flags属性):用来修改每个具体对话框的默认操作。缺省扩展名(DefaultExt属性):设置在对话框中的缺省扩展名文件最大长度(MaxFileSize属性):设置文件名的
6、最大字节数。,过滤器索引(FilterIndex属性):用索引值来指定对话框使用哪一个过滤器。取消引发错误(CancelError属性):决定当用户单击对话框上的“取消”按钮时,是否会显示一个报错信息的消息框。注:CancelError属性的设置方法对其他几种对话框也同样适用。,(3)“保存”对话框“保存”对话框也是在Windows应用程序中经常用到的。用ShowSave方法显示对话框,它同样能指定文件的驱动器、目录、文件扩展名和文件名,其使用方法和“打开”对话框的使用方法基本相同。,(4)“颜色”对话框“颜色”对话框用来在调色板中选择颜色,或者是创建并选择自定义的颜色。要使用“颜色”对话框,
7、通常先设置“通用对话框”控件中与颜色对话相关的属性,然后使用ShowColor方法显示对话框,使用Color属性获得所选择的颜色。,在“通用对话框”控件中和颜色相关的属性主要有“颜色”(Color)和“标志”(Flags)两个。“颜色”(Color)属性用来设置用来设置“颜色”对话框的初始颜色,同时它也能返回用户在对话框中选择的颜色。“标志”(Flags)属性用来决定“颜色”对话框的样式。,(5)“字体”对话框“字体”对话框用来指定字体名称、大小、颜色和样式。要使用“字体”对话框,通常先设置“通用对话框”控件中与字体对话相关的属性,然后使用ShowFont方法来显示对话框。“和字体相关的属性主
8、要有Color、FontBold、FontItalic、FontStrikethru、FontUnderline、FontName和FontSize。,在使用ShowFont方法之前,一定要把Flags属性设置为下述常数之一:cdlCFScreenFonts或1:屏幕字体cdlCFPrinterFonts或2:打印机字体cdlCFBoth或3:既可以是屏幕字体又可以是打印机字体,(6)“打印”对话框“打印”对话框可以指定打印输出方式。可以指定被打印页的范围,打印质量,打印的份数等等。这个对话框还包含当前打印机的信息,并允许配置或重新安装缺省打印机。,“打印”对话框主要属性及其具体含义如下:复制
9、(Copies):决定打印的份数。标志(Flags):如果把Flags设置为0,设置“打印”对话框中的“打印范围”。起始页(FromPage)和终止页(ToPage):用来设置从第几页打印到第几页。最小(Min)和最大(Max):分别用于设置打印的最小和最大页码数。方向(Orientation):用来设定打印的方向(1表示纵向,2表示横向)。,(7)“帮助”对话框“帮助”对话框可以用来制作应用程序的联机帮助。“帮助”对话框主要属性主要有:帮助上下文(HelpContext):返回或设置帮助文件中的主题的上下文ID,指定要显示的帮助主题。帮助命令(HelpCommand):返回或设置联机帮助的类
10、型。,帮助键(HelpKey):返回或设置帮助主题的关键字。帮助文件(HelpFile):返回或设置帮助文件的路径及其文件名称。,3、自定义对话框自定义对话框实际是一个用户自行设计的,用来完成用户和系统对话的窗体。创建自定义对话框首先要创建一个窗体,然后在窗体上添加必要的控件,完成对话框的各种功能。对话框的BorderStyle属性通常设置为3FixedDialog。显示对话框使用Show方法。对话框分成两种类型,即模式的和无模式的。,模式对话框是在继续操作应用程序的其他部分之前必须被关闭的。而无模式对话框允许在对话框与其他窗体之间转移焦点而不必关闭对话框。Show方法的两个可选参数分别是st
11、yle和ownerform。如果要显示的对话框是模式的,则Style取值为1或vbModoal;如果要显示的对话框是无模式的,则Style取值为0或vbModoaless。Ownerform参数决定该对话框是作为哪一个窗体的子窗体的。,第6章 对话框的设计,6.1 知识要点6.2 习题与解答6.3 实训指导6.4 测验题,6.2习题与解答,1、简述用Visual Basic创建对话框的几种方式。答案:用Visual Basic创建对话框有使用函数调用预定义对话框使用通用对话框自定义对话框三种常用方法。2、试写出生成以下三个对话框所对应的代码。,图6-2,图6-1,图6-3,答案:(1)a=Ms
12、gBox(程序出现严重错误!,vbInformation+_vbAbortRetryIgnore,警告)或a=MsgBox(程序出现严重错误!,66,警告),(2)b=MsgBox(你好,欢迎使用Visual Basic!&Chr(13)&Chr(10)&_想要退出吗?,vbQuestion+vbYesNoCancel+vbDefaultButton2,提示)或b=MsgBox(你好,欢迎使用Visual Basic!&Chr(13)&Chr(10)&_想要退出吗?,291,提示),(3)c=InputBox(请输入你所在城市的电话区号号码:,输入,0419)3、简述“通用对话框”控件的使用方
13、法,使用“通用对话框”控件可以显示哪些对话框,它们分别通过什么方法来实现。,答案:要使用“通用对话框(Common Dialog)”,必须先把该控件添加到工具箱中。具体方法为:从“工程”菜单中选“部件”命令;在“部件”对话框的“控件”选项卡中,查找“Microsoft Common Dialog Control 6.0”并将其选中,然后单击“确定”按钮。然后就可以象使用其他控件一样式样该控件了。,使用“通用对话框”控件可以显示“打开”对话框、“保存”对话框、“颜色”对话框、“字体”对话框、“打印”对话框和Windows帮助引擎对话框。它们分别通过ShowOpen、ShowSave、ShowCo
14、lor、ShowFont、ShowPrinter 和ShowHelp方法来实现。,4、模式对话框和无模式对话框的区别是什么?答案:模式对话框是在继续操作应用程序的其他部分之前必须被关闭的。而无模式对话框允许在对话框与其他窗体之间转移焦点而不必关闭对话框。当对话框正在工作时,可以在当前应用程序的其他地方继续工作。,5、为什么要使用自定义对话框?答案:自定义对话框与使用函数或通过“通用对话框”控件创建的对话框相比,内容和功能都可以有更多的发挥余地。使用函数创建的对话框一般都很简单且功能单一,通常只是用来做简单的输入和提示。Continue,通过“通用对话框”控件只能创建的标准的对话框。而自定义对话
15、框则相对灵活且功能强大,通常会满足用户为应用程序的继续运行而提供数据的需要。,第6章 对话框的设计,6.1 知识要点6.2 习题与解答6.3 实训指导6.4 测验题,6.3实训指导,技能训练目的 掌握InputBox函数的使用方法 掌握MsgBox函数的使用方法 掌握“通用对话框”的使用方法 掌握“自定义对话框”的创建和使用方法,技能训练内容【实训6.1】设计程序,窗体见 图6-4。单击“输入”按钮,则通过输入对话框分别输入十个整数并显示在“输入数据”后面的文本框中。单击“排序”按钮,十个整数从小到大排序后显示在“排序后”后面的文本框中。单击“清除”按钮,两个文本框全部清控。单击“退出”,程序
16、结束。,图6-4,提示:在窗体上添加两个标签控件(Label1和Label2),它们的Caption属性分别是“输入数据:”和“排序后:”;再添加两个标签控件(Label3和Label4),它们的Caption属性均为空,BorderStyle属性均设为1;添加四个命令按钮(Command1、Command2、Command3和Command4),它们的Caption属性分别为“输入”、“排序”、“清除”和“退出”。,参考代码:Option ExplicitDim a(9)As IntegerPrivate Sub Command1_Click()Dim i As Integer,s As S
17、tring For i=0 To 9 s=InputBox(请输入一个整数,输入)a(i)=Val(s)Label3.Caption=Label3.Caption+s Next iEnd SubPrivate Sub Command2_Click()Dim i As Integer,j As Integer,t As Integer,For i=0 To 8 For j=i+1 To 9 If a(j)a(i)Then t=a(i)a(i)=a(j)a(j)=t End If Next j Label4.Caption=Label4.Caption+Str(a(i)Next i Label4.
18、Caption=Label4.Caption+Str(a(i)End SubPrivate Sub Command3_Click()Label3.Caption=Label4.Caption=End SubPrivate Sub Command4_Click()EndEnd Sub,【实训6.2】在实训6.1中,如果程序只要求输入1100的整数,其他输入均看作错误。请实现输入异常时用消息框给出提示。如图6-5所示。,图6-5,提示:在“输入”按钮的的单击事件代码中加入数据合法性判断。参考代码:,Private Sub Command1_Click()Dim i As Integer,s As
19、String,ansinf As Integer For i=0 To 9 s=InputBox(请输入一个整数,输入)Do Until Val(s)=Int(Val(s)And Val(s)=1 And Val(s)=100 ansinf=MsgBox(输入数据不合法,请核对后重新输入!,49,错误提示)If ansinf=vbOK Then s=InputBox(请输入一个整数,输入)Else End End If Loop a(i)=Val(s)Label3.Caption=Label3.Caption+s Next iEnd Sub,【实训6.3】设计一个验证密码的程序(如图6-6所示
20、)。假定密码为“abc”,用户输入是否正确请用消息框来给予提示(如图6-7所示)。如果密码输入错误,提示是否重新输入(如图6-8所示),但只能最多进行三次重新输入,一旦密码输入次数超过三次,程序给出警告提示(如图6-9所示),并结束。,图6-6,图6-7,图6-8,图6-9,参考代码:Option ExplicitPrivate Sub Command1_Click()Dim ansinf As Integer Static i As Integer If Text1.Text=abc Then Form1.Hide ansinf=MsgBox(密码正确,欢迎进入本程序!,64,密码正确)El
21、se ansinf=MsgBox(密码错误,是否重新输入?,36,错误提示)End If If ansinf=6 Then Text1.Text=Text1.SetFocus ElseIf ansinf=7 Then End End If,i=i+1 If i=3 Then ansinf=MsgBox(你是非法用户,程序即将退出!,16,严重错误)End End IfEnd SubPrivate Sub Command2_Click()Text1.Text=End SubPrivate Sub Command3_Click()EndEnd SubPrivate Sub Text1_KeyPre
22、ss(KeyAscii As Integer)If KeyAscii=13 Then Call Command1_Click End IfEnd Sub,【实训6.4】设计程序。实现简单文本编辑器具有的“打开”、“保存”、“颜色设置”、“字体设置”和“打印”等功能。窗体如图6-10所示。提示:窗体设计如图所示,其中包含一个通用对话框(CommonDialog1),一个文本框(Text1)和六个命令按钮(Command1 Command6)。由于本实训内容与教材6.2节例题相似,此处仅提供“打开”功能的实现代码。,图6-10,参考代码:Private Sub Form_Load()CommonD
23、ialog1.CancelError=FalseEnd SubPrivate Sub Command1_Click()CommonDialog1.ShowOpenText1.Text=Open CommonDialog1.FileName For Input As#1Do While Not EOF(1)Line Input#1,inputdataText1.Text=Text1.Text+inputdata+Chr(13)+Chr(10)LoopClose#1End Sub,第6章 对话框的设计,6.1 知识要点6.2 习题与解答6.3 实训指导6.4 测验题,6.4测验题,选择题1Comm
24、ondialog1为窗体上一通用对话框,与Commondialog1.Action=3作用相同的语句是。ACommondialog1.ShowColor BCommondialog1.ShowOpen CCommondialog1.ShowSave DCommondialog1.ShowPrinter答案:A,2执行下列语句 a$=inputbox(“请输入一个整数”,”输入整数”,”123”)单击确定按钮后,a$的值为。A字符串“输入整数”B整数123 C空字符串 D字符串“123”答案:D,3通过通用对话框能打开“字体对话框”的方法是。ACommondialog1.ShowColor BC
25、ommondialog1.ShowFont CCommondialog1.ShowSave DCommondialog1.ShowOpen答案:B4下列代码中错误的是。Aa=MsgBox()BMsgBox 信息提示,vbInformation+vbOKCancelCa=MsgBox 信息提示,vbInformation+vbOKCancelDMsgBox“答案:C,5下列为“打开”对话框设置过滤器属性的语句中正确的是。ACommonDialog1.Filter=所有文件|(*.*)|文本文件|(*.txt)BCommonDialog1.Filter=所有文件|(*.*)|文本文件|(*.txt
26、)CCommonDialog1.Filter=所有文件|*.*|文本文件|*.txtDCommonDialog1.Filter=所有文件|*.*|文本文件|*.txt“答案:C,填空题1在窗体上有一命令按钮Button1,其单击事件代码如下:Private Sub Command1_Click()Do While z 8 x=InputBox(x=)x=Val(x)y=InputBox(y=)y=Val(y)z=InputBox(z=)z=Val(z)x=x+y+z Loop Print xEnd Sub程序运行后,若依次输入1,2,3,6,7,8后,输出的结果是(1)。答案:21,2在使用S
27、howFont方法之前,一定要先设置(2)属性。答案:flags属性 3在用Show方法显示自定义对话框时,分别用Show方法后带(3)和(4)参数来指定窗体为模式对话框或非模式对话框。答案:(3)VbModal或1(4)VbModaless或0,编程题编写加法练习测试程序。窗体如图6-11所示,程序运行自动产生两个100以内的随机整数分别填入两个标签中,单击“计算”按钮,出现如图6-12所示的对话框,在对话框中输入运算结果。确认输入数据后,相继有提示计算正确或错误,“是否继续计算?”的对话框出现,分别如图6-13、6-14和6-15,如果选择继续,程序继续随机出题,选择“否”,则程序给出你答
28、题情况统计并给出相应的分数,如图6-16。,图6-11,图6-12,图6-13,图6-14,图6-15,图6-16,参考答案Option ExplicitDim cornum As Integer,totnum As IntegerPrivate Sub Command1_Click()Dim ok As Integer,result As String,mark As Integer totnum=totnum+1 result=InputBox(计算:+Label1.Caption+Label3.Caption,写出正确答案)If Val(result)=Val(Label1.Captio
29、n)+Val(Label3.Caption)Then Label5.Caption=result ok=MsgBox(你算对了,继续努力!,vbOKOnly,答案正确)cornum=cornum+1 Else ok=MsgBox(很遗憾,你做错了!?,vbOKOnly,答案错误)End If ok=MsgBox(还继续吗?,vbYesNo,询问)If ok=6 Then Randomize,Label1.Caption=Round(Rnd*100)Label3.Caption=Round(Rnd*100)Label5.Caption=Else mark=Round(cornum/totnum*100)ok=MsgBox(你共计算了&totnum&道题,其中做对了&cornum&道。&Chr(13)&Chr(10)&分数为:&mark,统计分数)End IfEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Load()Randomize Label1.Caption=Round(Rnd*100)Label3.Caption=Round(Rnd*100)cornum=0 totnum=0End Sub,OVER,