第六章      对话框的设计
6.1 预定义对话框
在应用程序中添加对话框最容易的方法是使用预定义对话框,因为不必考虑设计、装载或者显示对话框方面的问题。然而,其控件在外观上要受到限制。预定义的对话框总是模式的。
    表6.1中列出了在Visual Basic应用程序中添加预定义对话框时所使用的函数。
6.1.1 输入框InputBox函数用来产生要求输入数据的输入框;在输入框中显示提示文本、文本框和按钮;等待用户的输入或按下按钮,并返回用户在文本框中输入的内容。
    如图6.1所示的输入框就是使用InputBox函数所产生的,用来提示用户输入要在窗体上显示的内容。
    生成该输入框的代码如下所示:
    Word=InputBox(“请输入要在窗体中显示的内容:”、“输入”)
    只需再做一点工作就可以将上面的文本输入框使用到程序中了。
    实例6.1使用输入框。
    在窗体中放置一个按钮控件,并设置它的Caption属性的值为“输入要显示的内容”,双击这个按钮控件打开它的代码窗口,编写如下代码:
 
Private  Sub  Commandl_Click()
      word=InputBox(“请输入要在窗体中显示的内容:”输入”)
      Print word
      End Sub
    在该程序中,InputBox函数将产生一个输入框,并且该函数包含有两个参数,其中第一个参数是指输入框中的用户提示字符串,第二个参数是指输入框的标题:
    InputBox(prompt[,title][,default][,spos][,ypos][,helpfile,context])
InputBox函数语法中的各参数的含义如表6.2所示。
    如果同时提供了Helpfile与Context,用户可以按F1键来查看与Context相应的帮助主题。
    如果用户单击输入框中的【确定】按钮,则InputBox函数返回文本框中的内容。如果用户单击【取消】按钮,则此函数返回一个长度为零的字符串(“”)。
    如果要省略某些位置参数,则必须加入相应的逗号分界符。例如,要指定实例6.1中输入框的位置,而缺省输入框的初始值,则语句如下:
    word =InputBox(“请输入要在窗体中显示的内容:”,“输入”, 200,200)。
6.1.2 消息框MsgBox函数用来产生一个消息框。消息框用来显示简短的消息,并要求用户作出一定的响应。例如,报告操作错误或向用户提示信息。看完这些消息以后,可选取一个按钮来关闭该对话框。
    创建该消息框的代码如下:
    Msg=MsgBox(您没有在文本框中输入任何内容“48”提示)。
    这里我们通过编写一个程序,来讲解如何在程序中使用MsgBox函数创建消息框。
    实例6.2使用消息框
    这个程序包含一个文本框和一个按钮,在文本框中输入内容后单击按钮,则所输入的内容就显示在窗体中;如果在文本框中没有输入任何内容,则单击按钮后会弹出一个提示框,告诉用户没有在文本框中输入任何内容,如图6.4所示。下面是编制这个小程序的具体过程。
    首先,在窗体中放置一个文本框控件,设置它的Text属性的值为空,再放置一个按钮控件,设置它的Caption属性的值为“确定”.文本框与按钮的名称均使用系统默认的名称。双击按钮控件,打开代码窗口,为按钮的Click事件编写如下代码:
vb开始按钮代码
 
Private Sub Commandl_Click()
  If Text1.Text=“Then
      Msg = MsgBox(“您没有在文本框中输入任何内容48提示
  Else
      Print Textl.Text
  End If
End Sub
    在上面的程序段中,使用了一个分支结构来判断文本框中是否输入了内容。运行该程序,直接单击【确定】按钮,则弹出如图5.4所示的消息枢。再次运行程序,在文本框中输入内容后,单击【确定】按钮,则不会出现消息框,且在窗体中显示用户输入的内容。
    MsgBox函数的一般格式如下:
    InputBox(prompt][,buttons][,title][,helpfile,context])
各参数的含义如表6.3所示。
    通过为Buttons参数指定不同的值,消息框会呈现出不同样式。所谓消息框的样式是指其上图标与按钮的不同组合。在上例中指定Buttons参数的值为48.该值下的消息框上显示一个惊叹图标和一个确定按钮。
    表6.4中列出了Buttons参数的设置值及其对应的消息框的样式。
    第一组值(0~5)描述了对话框中显示的按钮的类型与数目;第二组值(17,32,48,74)描述了图标的样式:第三组值(0,257,512)说明哪一个按钮是缺省值:而第四组值(0,4097)则决定消息框的强制返回性。将这些数字相加以生成buttons参数值的时候,只能由每组值取用一个数字。
例如,要使实例6.2的消息框中显示【确定】和【取消】按钮,并且【取消】按钮是缺省值,同时在消息框中显示一个信息图标。buttons参数的值应该是321(1+257+74)。
    在实例6.2中,Msg = MsgBox(您没有在文本框中输入任何内容“,48,提示”)赋值语句将MsgBox函数的值赋给变量Msg.MsgBox函数的返回值是根据用户单击哪个按钮而定的。如表6.5所示的是按钮与对应的MsgBox函数的返回值。
    在关闭应用程序时,系统常常会弹出一个消息框来提示用户是否真的要退出程序,如果户单击【是】按钮,则程序退出,如果用户单击的是【否】按钮,则程序不退出。这里,我们编写一个程序来模拟上述的情形。
实例6.3使用消息框2。
    在窗体中放置一个按钮控件,设置其Caption属性的值为“退出”,并采用系统默认的名称。双击按钮控件打开【代码】窗口,将下列代码添加到Command1_Click事件过程中:
 
Private Sub Commandl_Click()
  Msg=MsgBox(“是否真的退出程序37提示”)
  If msg=7 Then End
End Sub
    在该段代码中,使用了一个If语句来判断用户的选择,如果用户选择了【是】按钮,则执行End语句,否则不执行任何语句。