您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> VB >> 辅导 >> 正文    
  二级VB入门教程之四 【注册男护士专用博客】          

二级VB入门教程之四

www.nanhushi.com     佚名   不详 

第四章 按钮(一) 
  从本章开始我们将正式进入VB的编程世界,但这还仅仅是个开端,要编出功能强大的软件,还要学很多东西,那就要看以后的VB高级教程了,我也得努力学啊! 
  按钮是我们在Windows操作见到最多的控件,它们有着各种各样的功能:“确认”、“取消”、“下一步”等等,这些都是按钮的表现,另外还有很多图形话的按钮,其实它们并没什么不同,所有的按钮都是通过单击(click)事件实现的,只不过是在外表不同罢了。下面就让我们建立一个最简单的按钮,双击工具箱的CommandButton,将在窗体上建立一个形如图4-1的按钮,它的缺省名(Name属性)为Command1,我们可以把它改名为cmdExit,把Caption属性设为“退出”,然后双击,按钮填写代码: 
  Private Sub cmdExit_Click() 
Unload Me 
  End Sub 
  按下F5或者工具条上的播放按钮,运行程序。图4-2当你按下退出按钮的时候,就会自动退出程序,原因是当你单击按钮时激活了它的Click事件,执行“Unload Me”语句,使得窗体被卸载。 
  上面举了一个比较简单的例子,下面的例子稍微复杂些: 
  新建窗体,控件布局如图4-3所示,包括一个List控件,一个Text控件和两个按钮(Command1和Command2), (比较简单的程序我们都采用缺省名),对它们属性做如下修改: 
  List1 
  Caption=“请输入你的名字” 
  Text1 
  Text=“”(空字符串) 
  Button1 
  Caption=“复原” 
  Enabled=False 
  Button2 
  Caption=“清除” 
  把使用Button1的Enabled属性设为False(假),是使程序在初始时,无法单击Command1。按F5,运行程序,图4-4,复原按钮成为灰色,不可选。 
  当然现在程序还什么也不能做,下面我们在程序中添加代码: 
首先在General里声明全局变量: 
  Dim StoreString As String ’用来储存字符串 
  ※注意:为什么用全局变量? 
  VB里每一个小过程都相当于一个程序,程序里的变量称为局部变量,是只能在程序内部使用的,而当程序调用结束后,由于从内存中被清除,所以变量储存的值也就消失了,这里的全局变量是用来在过程中传递字符串。 
  接着填写以下代码: 
  Private Sub Command1_Click() 
  Text1.Text = StoreString 
Command1.Enabled = False 
  End Sub 
  Private Sub Command2_Click() 
  StoreString = Text1.Text 
Text1.Text = "" ’清除 
  Command1.Enabled = True 
  End Sub 
  运行程序,如图4-5。按下“清除”,文本框被清除,按下“复原”,文本有被恢复,许多程序中的Undo/Redo就是利用这个原理实现的,现在知道为什么内存越多越好了吧。 
  我们在把程序修改一下,把Button2删除,Button1的Enabled属性改为True,Caption改为“清除”,填写代码: 
  Private Sub Command1_Click() 
  If Command1.Caption = "清除" Then 
  StoreString = Text1.Text 
Text1.Text = "" ’清除 
  Command1.Caption = "复原" 
  Else 
  Text1.Text = StoreString 
  Command1.Caption = "清除" 
  End If 
  End Sub 
  同样可以上面的功能,但是却少用了一个控件,控件使用少的程序启动会快些。 
  下面的例子要更加复杂些,大家一定都用过Windows附件中的计算器,它是一个标准的科学计算器,利用VB我们也可以做到,只是没有那么复杂,四则运算而已。 
  先建立一个新的项目文件,里面包含一个Form1的窗体。然后,添加控件,包括一个Text框(Text1),和17个按钮,这17个按钮使用的名称都是Command1,只是Index属性不同,就好象一个数组,创立一组按钮的方法是,先在窗体上建立一个按钮(Command1),然后在Command1上击鼠标右键,选择复制(Copy),然后在窗体上任意部位击右键,选择粘贴(Paste),系统会提示是否创建控件组,选择“是”,重复上面步骤,直至创立17个按钮为止。各控件属性如下表: 
  Text1 
  BackColor=&H00C0FFFF& 
  Text=“0.” 
  Command1 
  Index 0 D D16 
  Index 0 D D9 Caption=“0”-“9” 
  Index 10 Caption=“.” 
  Index 11 Caption=“=” 
  Index 12 Caption=“+” 
  Index 13 Caption=“-” 
  Index 14 Caption=“×” 


  Index 15 Caption=“÷” 
  Index 16 Caption=“清除” 
  如果想改变一些其他的属性,比如字体,可以自己定义一下Font属性,如果相对多个控件的共同属性进行改变,可以在窗体上按下鼠标,拖动,把多个控件一起选定,然后对它们的共同属性进行修改。 
  别看这个东西小,还费了近我两个小时呢,不觉大叹手生,里面也有些地方很绕弯子,我尽量解释清楚。 
  在编写程序之前,我们先来回顾一下计算器的使用。 
  按下数字键在液晶屏上会出现数字,这是最基本的功能。 
  第一次按下运算键,再按下数字键,将重新输入第二个数字,再次按下运算键,将算出前两个数的结果,然后按下数字键,将又重新输入新的数字。 
  输入数字后,按下“等于键”将仍输出原来的数字,输入运算符和第二个数字后在按下“等于”,将得到二者的结果。然后又重复第二、三步。 
  按下“清除”,数据被全部清除。 
  了解了这些,我们一步一步实现。 
  先实现数据的输入,请看代码。 
  与未创立组的控件相比,它的事件里多了Index参数,组里所有的对象都使用同一个事件。 
  先在General里声明窗体级全局变量: 
  Dim Num1, Num2 As Single 
  Dim StrNum1, StrNum2 As String 
  Dim FirstNum As Boolean ’判断是否是数字开头 
  因为Text1里是存放字符串的,所以要把输入的数据进行运算,必须把字符型变量转变为实型变量,分别用Num1、Num2和StrNum1、StrNum2进行存放。 
  在Form_Load事件里给变量初赋值: 
  Num1 = 0 
  Num2 = 0 
  StrNum1 = "" 
  StrNum2 = "" 
  FirstNum = True 
  因为17个按钮使用的是同一事件,所以我们用一个Select Case语句区分各个按钮,双击任意按钮输入代码: 
  Private Sub Command1_Click(Index As Integer) 
  Select Case Index 
  Case 0 To 9 
  If FirstNum Then 
  StrNum1 = Str(Index)’实型转字符型 
  FirstNum = False’初赋值为假 
  Else’非初赋值 
  StrNum1 = StrNum1 + Str(Index) 
  End If 
  Text1.Text = StrNum1’显示 
  <还有其他语句,等待插入> 
  End Select 
  End Sub 
  运行程序的话已经可以输入数据,下面我们来处理小数点。 
  在General里声明新的变量: 
  Dim PointFlag As Boolean ’判断是否已有小数点 
  我们知道小数点只能输入一次,一个数据中不能有多个小数点存在,所以需要一个布尔变量做判断。 
  在Form_Load里进行初赋值: 
  PointFlag = False 
  在Command的单击事件里接着上面输入新的代码: 
  Case 10 
  If Not PointFlag Then’如果没有小数点 
  If FirstNum Then’如果是第一个字符 
  StrNum1 = "0." 
  FirstNum = False 
  Else 
  StrNum1 = StrNum1 + "." 
  End If 
  Else’已有小数点 
  Exit Sub’则退出单击事件 
  End If 
  PointFlag = True 
  Text1.Text = StrNum1

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。