关键词搜索

源码搜索 ×
×

详解VB对话框InputBox和MsgBox

发布2020-10-09浏览5992次

详情内容

“ 大家好,从本节课程开始,我们一起来学习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
      
        2
      • 3
      • 4
      • 5

      运行效果如下:

      在这里插入图片描述

      这个例子中,我用了一个变量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
      
        2
      • 3
      • 4
      • 5
      • 6
      • 7

      运行程序,分别输入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
      
        2
      • 3
      • 4
      • 5
      • 6
      • 7

      运行程序,分别输入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
          
            2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9

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

          在这里插入图片描述

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

          在这里插入图片描述

          以上就是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
          
            2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22

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

          在这里插入图片描述

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

          在这里插入图片描述

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

          在这里插入图片描述

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

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

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

          相关技术文章

          点击QQ咨询
          开通会员
          返回顶部
          ×
          微信扫码支付
          微信扫码支付
          确定支付下载
          请使用微信描二维码支付
          ×

          提示信息

          ×

          选择支付方式

          • 微信支付
          • 支付宝付款
          确定支付下载