点击这里给我发消息 点击这里给我发消息

vb.net入门——Windows 窗体中的提示对话框

添加时间:2013-12-6
    相关阅读: 程序 Windows 制作 系统
副标题#e#

上一章,我们学了vb.net入门——Windows窗体的继承后,这里就来看看Windows 窗体中的提示对话框。

在基于Windows的应用程序中,对话框被用来提示用户提供应用程序的继续运行所需的数据或者向用户显示信息。对话框是一种特殊类型的窗体对象。

在Visual Basic .Net中提示对话框一般是指这两种:一种是等待并提示用户为程序运行输入指定的数据,称为"输入信息对话框",简称"输入对话框";另外一种就是起到提示作用,用以确认某种程序的操作,称为"信息提示对话框",简称"信息提示框"。

一、信息提示框

我们在使用Windows应用程序时候,碰到最多的就是信息提示框了,包括询问、警告以及操作完成等消息都是通过它来告知我们的。在vb.net中,有两种办法可以达到制作消息提示框的目的:一种是使用Msgbox函数,你要是使用过vb以前的版本的话一定对它很是熟悉了;第二种是使用.Net FrameWork SDK提供的类库MessageBox 类来实现。

方法一:Msgbox函数

该函数的结构:

Public Function MsgBox(ByVal Prompt As Object, _
Optional ByVal Buttons As MsgBoxStyle = MsgBoxStyle.OKOnly, _
Optional ByVal Title As Object = Nothing) As MsgBoxResult

参数说明:

Prompt
必选项。以消息形式显示在对话框中的 String 表达式。Prompt 的最大长度大约为 1024 个字符,具体取决于所用字符的宽度。如果 Prompt 中包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 分隔各行。
Buttons
可选项。数值表达式,它是值的总和,指定显示的按钮数目及按钮类型,使用的图标样式,默认按钮的标识以及消息框的样式等。如果省略 Buttons,则默认值为零。
Title
可选项。显示在对话框标题栏中的 String 表达式。如果省略 Title,则将应用程序名放在标题栏中。

下面五个表列出了 MsgBoxStyle 枚举值。

枚举 说明
OKOnly 0 只显示“确定”按钮。
OKCancel 1 显示“确定”和“取消”按钮。
AbortRetryIgnore 2 显示“中止”、“重试”和“忽略”按钮。
YesNoCancel 3 显示“是”、“否”和“取消”按钮。
YesNo 4 显示“是”和“否”按钮。
RetryCancel 5 显示“重试”和“取消”按钮。
表一:描述对话框中显示的按钮的数目和类型
 
枚举 说明
Critical 16 显示“关键消息”图标。
Question 32 显示“警告查询”图标。
Exclamation 48 显示“警告消息”图标。
Information 64 显示“信息消息”图标。
表二:描述图标样式
 
枚举 说明
DefaultButton1 0 第一个按钮是默认的。
DefaultButton2 256 第二个按钮是默认的。
DefaultButton3 512 第三个按钮是默认的。
表三:确定哪个按钮是默认的
 
枚举 说明
ApplicationModal 0 应用程序是有模式的。用户必须响应消息框,才能继续在当前应用程序中工作。。
SystemModal 4096 系统是有模式的。所有应用程序都被挂起,直到用户响应消息框。
表四:确定消息框的样式
 
枚举 说明
MsgBoxSetForeground 65536 指定消息框窗口为前景窗口。
MsgBoxRight 524288 文本为右对齐。
MsgBoxRtlReading 1048576 指定文本应为在希伯来语和阿拉伯语系统中从右到左显示。
表五:指定消息框窗口是否为前景窗口以及文本的对齐方式和方向

以上五个表把MsgBoxStyle枚举值分为五个组,可以将这些枚举值相加以生成 Buttons 参数的最终值,但是要注意只能由每组中取用一个枚举值。

函数返回值:MsgBoxResult,下表列出了函数的返回值

常量
OK 1
Cancel 2
Abort 3
Retry 4
Ignore 5
Yes 6
No 7

表六:Msgbox函数的返回值

 

下面我们演示弹出一个警告提示框,如下图一所示:

vb.net入门——Windows 窗体中的提示对话框(图一)

图一

仔细观察上面的警告提示框,其标题栏的文字为"警告",图标为"警告消息"图标,按钮为显示"确定"和"取消"两个按钮,默认按钮为第一个按钮,提示文字为"演示警告对话框",所以在Msgbox函数的各个参数为:

Prompt="演示警告对话框"

Title="警告"

Buttons中包含三个值,警告图标(MsgBoxStyle.Exclamation)、按钮数目和类型(MsgBoxStyle.OKCancel)、默认按钮(MsgBoxStyle.DefaultButton1)。

综合以上我们可以得到如下一个完整的Msgbox函数的代码:

MsgBox("演示警告对话框", MsgBoxStyle.Exclamation Or MsgBoxStyle.OKCancel Or MsgBoxStyle.DefaultButton1, "警告")

注意:MsgBoxStyle各枚举值之间是用or连接,而不能用其它的符号!

经过上面的介绍,相信你对Msgbox函数已经会用了,但是在vb.net中,我们并不推荐使用Msgbox函数来制作信息提示框,下面我们就来讲讲vb.net更加强大更加灵活的MessageBox 类来实现信息提示框。

方法二:MessageBox 类实现信息提示框

经过上面的介绍,相信你对Msgbox函数已经会用了,但是在vb.net中,我们并不推荐使用Msgbox函数来制作信息提示框,下面我们就来讲讲vb.net更加强大更加灵活的MessageBox 类来实现信息提示框。

MessageBox类位于命名空间System.Windows.Forms中,它是一个静态类,所谓静态类,就是不通过创建实例就能够直接使用类中的方法。MessageBox类组成非常简单,其中最为重要的成员就是Show方法,Visual Basic .Net就是通过调用MessageBox类的Show方法来显示信息对话框的。Visual Basic .Net只使用MessageBox类是无法制作各式各样的信息对话框,还需要使用到命名空间System.Windows.Forms定义的若干枚举,这些枚举可以设定信息对话框中的各个元素。.Net 类库把信息对话框中的各个元素进行了细化,这一点不像MsgBox函数中使用的MsgBoxStryle枚举,MsgBoxStryle枚举把按钮的数目、种类、图标、按钮缺省焦点都定义到一起了。而.Net类库中定义了不同的枚举用以定义信息对话框中的各种元素。这些枚举就是:MessageBoxIcon、MessageBoxButtons和MessageBoxDefaultButton枚举。

  MessageBox类中有很多重载Show方法,下面是最为常用的一种重载Show方法的语法格式:

Overloads Public Shared Function Show (ByVal text As String ,ByVal caption As String , _
ByVal buttons As MessageBoxButtons ,ByVal icon As MessageBoxIcon ,ByVal defaultButton As MessageBoxDefaultButton ) As DialogResult

参数说明:

text 必选,提示框中显示的内容。
   caption 可选,提示框标题栏中显示的文本。
   buttons 可选,MessageBoxButtons值之一,设定提示框中的按钮数目和类型。
   icon 可选,MessageBoxIcon值之一,设定提示框中显示的图标类型。
   defaultButton 可选,MessageBoxDefaultButton值之一,设定提示框缺省焦点按钮。
   返回值 DialogResult值之一。

下面三个表分别列出了MessageBoxIcon、MessageBoxButtons和MessageBoxDefaultButton枚举值:

成员名称 说明
Asterisk 信息符号图标。
Error 关键符号图标
Exclamation 感叹符号图标。
Hand 关键符号图标。
Information 信息符号图标
None 无图标。
Question 问号图标。
Stop 关键符号图标。
Warning 感叹符号图标。

表七:MessageBoxIcon枚举值枚举的成员及其说明

成员名称 说明
AbortRetryIgnore 提示框中包含"中止"、"重试"和"忽略"按钮。
OK 提示框中包含"确定"按钮。
OKCancel 该提示框中包含"确定"和"取消"按钮。
RetryCancel 提示框中包含"重试"和"取消"按钮。
YesNo 提示框中包含"是"和"否"按钮。
YesNoCancel 提示框中包含"是"、"否"和"取消"按钮。
AbortRetryIgnore 提示框中包含"中止"、"重试"和"忽略"按钮。

表八:MessageBoxButton枚举的成员及其说明

成员名称 说明
Button1 提示框中的第一个按钮是缺省焦点按钮。
Button2 提示框中的第二个按钮是缺省焦点按钮。
Button3 提示框中的第三个按钮是缺省焦点按钮。

表九:MessageBoxDefaultButton枚举的成员及其说明

下面代码的功能是用MessageBox类的Show方法制作上图一中所示警告提示框:
MessageBox.Show("演示警告对话框", "警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
本文作者: #p#副标题#e#

二、输入对话框

输入对话框在Windows应用程序出现的机会比较小,但是很多情况下也是需要用到,特别是自定义的对话框,基本上都具备了输入对话框的功能,不过我们这里只讲讲怎么使用预定义的输入对话框,自定义对话框我们留待下一章再仔细学习。

在Visual Basic .Net,预定义的输入对话框是通过InputBox函数来实现的。

以下是InputBox函数在Visual Basic .Net中的语法:

Public Function InputBox(ByVal Prompt As String, _
Optional ByVal Title As String = "",Optional ByVal DefaultResponse As String = "", _
Optional ByVal XPos As Integer = -1,Optional ByVal YPos As Integer = -1) As String

参数:

Prompt
必选项。以消息形式显示在对话框中的 String 表达式。Prompt 的最大长度大约为 1024 个字符,具体取决于所用字符的宽度。如果 Prompt 中包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 分隔各行。
Title
可选项。显示在对话框标题栏中的 String 表达式。如果省略 Title,则将应用程序名放在标题栏中。
DefaultResponse
可选项。显示在文本框中的 String 表达式,在没有提供其他输入时作为默认响应。如果省略 DefaultResponse,则显示的文本框为空。
XPos
可选项。数值表达式,以缇为单位指定对话框的左边与屏幕左边的距离。如省略 XPos,对话框将水平居中。
YPos
可选项。数值表达式,以缇为单位指定对话框的上边与屏幕上边的距离。如果省略 ypos,则对话框位于在屏幕垂直方向距下边缘大约三分之一处。
 
如下代码:

Dim message , title , defaultValue As String

Dim myValue As Object

message = "请输入数值,数值在1-3之间!" '设定对话框提示信息

title = "输入提示框!" '设置对话框标题

defaultValue = "1" '设定对话框中缺省的数值

myValue = InputBox ( message , title , defaultValue , 100 , 100 )'设定对话框在左上角坐标位于桌面(100,100)区域显示

运行效果如下图二所示:

vb.net入门——Windows 窗体中的提示对话框(图二)

图二:输入提示框效果

上面学了这么多东西,也到该结束这章的时候了,下面我们就以一个示例来演示信息输入框和信息提示框,作为这章内容的总结,要求:

1、使用输入提示框,接受输入数字

2、在程序中判断用户输入的信息

3、把判断结果用信息提示框告知用户

示例如下:

Form1窗体一个,Button1控件一个,在Button1控件中添加代码:

Dim strReturn As String

strReturn = InputBox("请输入数字", "输入", "0")

If IsNumeric(strReturn) = True Then

MessageBox.Show("你输入的数字是:" & strReturn, "input函数返回值", MessageBoxButtons.OK,MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)

Else

MessageBox.Show("你输入的不是数字", "input函数返回值", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)

End If

按F5运行,效果如下:

vb.net入门——Windows 窗体中的提示对话框(图三)

图三:弹出输入提示框

如果输入的是数字,返回一个结果提示:

vb.net入门——Windows 窗体中的提示对话框(图四)

图四:信息提示框

如果输入的不是数字,则弹出一个警告对话框

vb.net入门——Windows 窗体中的提示对话框(图五)

图五:信息提示框


本文作者:
咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册