“ 大家好,从本节课程开始,我们一起来学习VB中各种对话框的使用。”

本节课程呢,我们一起来学习InputBox和MsgBox对话框。这两个对话框在VB中非常的重要,使用频次很高,熟练的掌握它们,可以为编程带来更高的效率。

01

输入对话框InputBox

InputBox 函数

作用
在一对话框来中显示提示,等待用户输入正文或按下按钮,并返回包含文本框内容的 String。

语法

InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])

参数中,我们一般只需要使用前面三个Prompt、Title、Default。

Prompt 表示对话框中的提示文本,用来提示用户需要输入什么。
Title 是对话框的标题
Default 是对话框中的默认值。

举例1:

InputBox "输入你的年龄", "年龄", "23"

运行效果如下:

以上例子,虽然正确的使用了InputBox,但是并没有接收用户输入的数据。因此实际上这样的用法通常是没有意义的。

举例2:

Private Sub Command1_Click()    Dim age    age = InputBox("输入你的年龄", "年龄", "23")    Print "用户年龄是:" & age
End Sub

运行效果如下:

这个例子中,我用了一个变量age来接收InputBox函数的返回值,获得了用户输入的数据。

细心的读者可能会发现,例1和例2中,InputBox函数的用法有一点区别。例子中InputBox中的参数,并没有用括号,而例2中却使用了括号。其实,这是因为例1中没有使用变量接收InputBox函数的返回值,所以不需要使用括号,这一点我们在函数Function课程中已经讲过了。相反例2使用了变量接收函数返回值,因此需要括号将参数给括起来。

另一点,需要注意的是,InputBox函数的返回值的数据类型是String字符串类型。因此,如果需要使用其进行计算,则一定要记得用val来转换数据类型为数值型。

如果用户单击了“取消”按钮,则会返回一个长度为0的空字符串""。

InputBox举例

错误案例:

Private Sub Command1_Click()    Dim sum, val1, val2    val1 = InputBox("输入第一个数", "求和", "0")    val2 = InputBox("输入第二个数", "求和", "0")    sum = val1 + val2    Print val1 & "+" & val2 & "=" & sum
End Sub

运行程序,分别输入1和2,发现输出的结果是12,如下图所示:

这个例子中,1+2=12,很明显是不正确的,其错误的原因就是数据类型不正确。

正确案例:

Private Sub Command1_Click()    Dim sum, val1, val2    val1 = InputBox("输入第一个数", "求和", "0")    val2 = InputBox("输入第二个数", "求和", "0")    sum = Val(val1) + Val(val2)    Print val1 & "+" & val2 & "=" & sum
End Sub

运行程序,分别输入1和2,结果如下图所示:

这里我们利用val转换函数,将字符串类型的数据转换为数值型数据,然后再进行求和,就可以得到正确的结果了。

02

消息对话框Msgbox

Msgbox函数

作用:
在对话框中显示消息,等待用户单击按钮,并返回一个 Integer告诉用户单击哪一个按钮。

语法:

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

消息对话框MsgBox,可以弹出一个消息框,用于提示用户,并等待用户做出选择。

消息对话框中的前三个参数是需要掌握的,后面两个参数可以不做了解。

Prompt 参数是在对话框中显示的消息,用于提示用户,是必要参数。
Title 参数是对话框的标题,非必要参数,不设置该参数的话,则会默认将工程名用作于标题。
Buttons 参数是可选项,用于指定对话框的形式

为了方便大家理解Buttons各个选项的对话框形式,我把这些参数及对应的效果做了一张表格,如下所示:


Buttons参数还可以叠加使用

例如,我们可以将vbOKCancel和vbExclamation叠加起来,于是可以实现具有确定和取消按钮,同时有警示图标。

代码:

MsgBox "这是一个例子", vbOKCancel + vbExclamation

运行效果如下图:

如何判断用户点击了哪一个按钮?
Msgbox函数在用户点击了按钮之后,会返回一个整数,用于指明用户单击的按钮类型。

MsgBox举例

Private Sub Command1_Click()    Dim a%    a = MsgBox("这是一个例子", vbOKCancel + vbExclamation)    If a = vbOK Then        Print "用户单击了确定按钮"    ElseIf a = vbCancel Then        Print "用户单击了取消按钮"    End If
End Sub

运行程序,弹出消息对话框

获取用户选择的按钮,并打印出来

以上就是InputBox和MsgBox对话框的详细介绍。接下来我们做一个实战练习。

03

实战练习

要求:
设计一款猜数字游戏。点击开始游戏后,软件内随机一个1-100之内的整数,之后弹出一个InputBox输入框,由用户输入一个数,系统判断用户输入的整数是否与目标数一致,如果大了,则提示猜大了,如果小了则提示猜小了,直到猜对了为止。

分析:
这道题目的难度并不大,利用本文学习的InputBox和Msgbox来与用户进行交互,并利用do循环来重复执行这一个过程,直到用户猜对。
提示:由于至少需要执行一次,所以要使用do…Loop循环。

界面设计:
如下图所示,只需要一个窗体和一个命令按钮即可。

代码设计:

Private Sub Command1_Click()    Dim targetNum%  '目标数字    Dim userNum    '用户猜的数字    Dim guessNums%  '猜的次数    Randomize    targetNum = Int(100 * Rnd) + 1    Do        userNum = InputBox("请从1-100之间猜一个数字", "猜数字", "50")'如果用户单击了取消按钮,则退出游戏 If userNum = "" Then            End        End If        guessNums = guessNums + 1        If Val(userNum) > targetNum Then            MsgBox "猜大了", vbInformation, "提示"        ElseIf Val(userNum) < targetNum Then            MsgBox "猜小了", vbInformation, "提示"        ElseIf Val(userNum) = targetNum Then            MsgBox "猜对了,共用了" & guessNums & "次", vbInformation, "提示"        End If    Loop Until (targetNum = Val(userNum))
End Sub

测试程序:
点击开始游戏按钮后,弹出输入对话框。

用户每输入一个数字后,就会给出提示。

直到猜对之后,给出正确提示并。

好了,本节课程关于InputBox和MsgBox对话框的详细教程就学习结束啦。我们下节课再见吧。

本文中猜数字游戏的源码下载地址:
https://download.csdn.net/download/weixin_39433293/12457256

一个人创作不易,望大家多多支持

详解VB对话框InputBox和MsgBox相关推荐

  1. 【C#控件详解】对话框类控件(打开文件,保存文件,选择字体和颜色)

    在实际应用中,我们会用到各种各样的对话框,如打开文件,保存文件,选择字体和颜色等等.本文详细讲解C#中的颜色对话框.打开文件对话框.字体对话框.浏览文件夹对话框和保存文件对话框. 文章目录 1. Co ...

  2. 详解VB中连接access数据库的几种方法

    在VB中,连接ACCESS数据库的方法主要有下面三种 使用ADO对象,通过编写代码访问数据库 Connection 对象 ODBC数据源 使用ADO Data 控件快速创建数据库连接 有三种连接方法 ...

  3. [vb]一些窗口消息的详解

    代码: Public Const WM_NULL = &H0 '空消息 Public Const WM_NCCREATE = &H81 '当窗口第一次被创建时,此消息在WM_CREAT ...

  4. AlertDialog使用详解

    AlertDialog使用详解 普通的对话框 final Builder builder = new AlertDialog.Builder(this); btn.setOnClickListener ...

  5. c语言菜单选择如何用字符形式,【创客天地】计算机二级C语言、VB考试详解分析...

    原标题:[创客天地]计算机二级C语言.VB考试详解分析 01 马上就要迎来计算机二级考试了,你准备好了吗?今天助手君准备了一点C语言干货,希望对即将考试的你有所帮助.(上期刚刚推了office,有需要 ...

  6. 详解Linux交互式shell脚本中创建对话框实例教程

    详解Linux交互式shell脚本中创建对话框实例教程 本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一 ...

  7. 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

    本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...

  8. [转]VB中资源文件.res的使用方法详解

    在几乎所有的Windows应用程序中都拥有资源文件,这些文件定义使用应用程序将要显示很多的用户界面元素,以及提供程序所需要的各种类型数据的存储场所.资源文件在VC应用程序中应用十分广泛,在VB应用中却 ...

  9. 【转】用VB操作Excel详解

    用VB操作Excel详解 一. VB读写EXCEL表: VB本身提自动化功能可以读写EXCEL表,其方法如下: 1.在工程中引用MicrosoftExcel 类型库: 从"工程"菜 ...

  10. 第五节、AHK对话框详解

    对话框 1.MsgBox, Text 2.MsgBox [, Options, Title, Text, Timeout] 第一种:创建一个标题是AHK文件名,显示内容是Text ,包含一个确定按钮的 ...

最新文章

  1. c#中文件的写入与读取
  2. android 轮播 getWith,NavigationTermSet.GetWithNewView 方法
  3. JavaScript是如何工作的:JavaScript的共享传递和按值传递
  4. 【数字信号处理】基本序列傅里叶变换总结 ( 单位脉冲序列 δ(n) | {1} 序列 | e^jωn 序列 | cosωn 序列 | sinωn 序列 | a^nu(n) | 矩形窗函数 ) ★★★
  5. 网站使用手机相机_相机拍完照片,如何传到手机上?详细步骤教你使用
  6. IRC 聊天工具(xchat,chatzilla,pidgin)入门教程
  7. centos6.9升级openssl版本
  8. 2020重学Go系列:反引号的妙用—结构体里的 Tag 标签
  9. 形式验证进阶 chipdriver_【饥荒进阶】烹饪基础:全食材系数详解-五耀整理
  10. android 排队系统设计,基于android银行排队叫号系统毕业设计论文+设计源码+答辩PPT...
  11. CMAKE Opencv配置
  12. Oracle怎样导出应收开票,【Oracle|Oracle财务系统应收账款模块操作手册】
  13. 【unity记录】导入标准资源包(Standard Assets)
  14. PID系统稳定性与零极点的关系
  15. phalapi-入门篇6(小技巧和浅谈API适用范围以及入门篇总结)
  16. android studio连接本地SqlServer数据库报网络错误
  17. 关系代数题目小汇总——数据库
  18. Google Earth Engine APP(GEE)——用一个选择器选择不同城市的应用
  19. oppo怎么广告接入_OPPO广告分模块投放的正确打开方式
  20. DNS(域名系统)介绍,深入解析DNS解析失败发生的原因及解决方法

热门文章

  1. 1.Spring注解01、组件注册-@Configuration@Bean给容器中注册组件
  2. 需要获取trustedinstaller权限才能删除文件,删不了
  3. js进行txt文件下载方式或oss文件访问下载跨域解决
  4. 无线承载根据承载的内容不同分为SRB和DRB EPS承载根据用户业务需求和Qos的不同可以分为GBR/ Non-GBR 承载...
  5. 重装系统后如何恢复mysql服务
  6. 电脑声音有回音 怎么弄回去啊 5
  7. 1、微信公众平台注册
  8. 最新数据库驱动包下载(完整版)
  9. Failed to parse time specification
  10. 大话数据结构学习笔记(8)二叉树