APP下载

由控件事件参数的使用谈VB实验创新

2009-08-31任少斌

计算机教育 2009年13期
关键词:VB程序设计控件

任少斌

摘要:本文针对目前VB学习过程中,控件事件参数的使用方法进行了有效的探索。过程参数的使用是程序设计中的重要环节,现行的教材中很少介绍。学生在学习过程中没有得到足够的重视。本文着重探讨了鼠标事件中坐标参数的使用方法,并以此为例说明程序学习的基本方法。

关键词:VB程序设计;事件过程;控件;参数

中图分类号:G642 文献标识码:A

1引言

Visual Basic(以下简称VB)是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows 环境下的各类应用程序。它简单易学、效率高、功能又强,所以目前很多院校将它作为非计算机专业软件技术基础课程讲授的编程语言之一。

在长期的教学过程中发现,学生对于教材中介绍的内容能够很快掌握,参加学期考试甚至是计算机相关等级考试成绩也很好,但进入到具体的课程设计或项目工作时往往出现无从下手的情况。这一现象在目前的本科生教学中普遍存在。对于绝大多数的学校由于条件限制,特别是教学计划的限制,很难保证充足的上机时间。因此如何通过有限的时间让学生掌握学习程序设计的基本方法,是每一个从事计算机基础教学老师关心的问题。

2问题分析

程序教学目前普遍使用的教学模式是选用经典教材,课堂教学与实验教学。在此过程中,通过讲解教材中典型例题介绍基本概念;通过课后作业检查学生对于教材的理解;通过上机实验检查学生实际运用能力。这期间最突出的问题是学生在完成作业与实验时基本顺利,但将具体要求变化之后,特别是教材当中没有相似内容时,感觉无从下手。通过长期的教学发现问题集中在教学环节。

教材中的例题、习题与教学环节中的实验内容主要是为了配合教学计划。其主要目的是为了掌握基本概念,对于概念的综合理解没有效果。学生在教材中可以找到几乎完全相似的内容。但进入到实际项目后,90%的内容是教材中没有的内容,它要求学生能够综合运用知识解决问题。

3实验创新

3.1事件说明

VB是基于事件方式的可视化程序设计。针对不同的事件在执行过程中有不同的参数传递。参数传递在程序设计中很重要,但在教材中或MSDN中都没有详细介绍具体的应用方式。在学习的过程中成为教学空白。下面结合教学内容介绍关于鼠标参数中X,Y参数的综合运用。

鼠标的事件为:

Private Sub Form_MouseDown(button As Integer, shift As Integer, x As Single, y As Single)

Private Sub MDIForm_MouseDown(button As Integer, shift As Integer, x As Single, y As Single)

Private Sub object_MouseDown([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)

Private Sub Form_MouseUp(button As Integer, shift As Integer, x As Single, y As Single)

Private Sub MDIForm_MouseUp(button As Integer, shift As Integer, x As Single, y As Single)

Private Sub object _MouseUp([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)

其中概念与含义见表1。

3.2实验设计

实验中要求学生能够利用X与Y值的变化进行设计。典型应用一:模仿CAD软件中的定位功能,通过调整X,Y值画线与特定图形。典型应用二:利用X,Y值结合其它控件编制一个小型游戏。其中对于第一个应用方式比较容易实现,绝大多数学生能够通过文本框结合Line,Circle及Shape控件完成。对于第二种应用方式则比较困难。下面重点说明如何解决。游戏内容能够吸引学生的主要原因是它的集声音、动画、情节一体,模拟逼真。设计游戏软件可以使用专用的平台,要求具备多学科知识,同时需要具备一定的美工基础。VB中完全可以综合利用控件技术实现简单的游戏设计。

本实验主要使用控件为按钮(也可以使用Picture控件),时间控件,滚动条控件。利用在鼠标在按钮对象上点击时X,Y值确定是否点击有效,利用程序代码调整区域改变难度,同时也可以通过改变对象的大小或时间间隔调控难度。使用Command按钮作为操作对象。

设计效果如表2所示。

利用数组化标准控件的功能产生8个按钮Command1,当程序启动后,利用随机函数控制按钮的移动方向,利用鼠标点击特定区域确定是否点击成功并计数,利用滚动条Hscroll1调整时间控件Timer的时间间隔,当鼠标点击成功时利用Visible属性将其隐藏。当窗体中的所有按钮被隐藏则游戏结束,并统计使用时间。按钮控件通过修改Style属性值为Graphical,并将按钮对象的Caption清空,通过Picture属性修改为图案。设计界面如图1所示,运行界面如图2所示。

3.3设计代码

Dim bl% '用于控制目标点击区域比例

Dim jsq%

Private Sub Command1_Click(Index As Integer)

Select Case Index

Case Index

If X > Command1(Index).Width / 200 * ((100 - bl) / 200) _

And X < Command1(Index).Width / 200 * ((100 + bl) / 200) _

And Y > Command1(Index).Height / 200 * ((100 - bl) / 200) _

And Y < Command1(Index).Height / 200 * ((100 + bl) / 200) Then

Command1(Index).Visible = False

jsq = jsq + 1

If jsq = 8 Then

pdtj = MsgBox("终于完成任务了,是否继续", vb YesNo, "系统提示") 'pdtj用于确定是否继续

If pdtj = 6 Then

For i = 0 To 7

Command1(i).Visible = True

Next i

Else

End

End If

End If

End If

End Select

End Sub

Private Sub Form_Load()

Randomize

Form1.Caption = "Visual Basic创新实验设计"

Label1.Caption = "快"

Label2.Caption = "慢"

Label3.Caption = "小"

Label4.Caption = "大"

Frame1.Caption = ""

Frame2.Caption = "调整内容"

For i = 0 To 7

Command1(i).Caption = ""

Command1(i).Left = Int((Frame1.Width - Command1(i).Width) * Rnd)

Command1(i).Top = Int((Frame1.Height - Command1(i).Height) * Rnd)

Next i

Timer1.Interval = 200

bl = 50

HScroll2.Value = bl

HScroll1.Value = Timer1.Interval

HScroll1.Max = 500

HScroll1.Min = 50

HScroll2.Max = 100

HScroll2.Min = 5

End Sub

Private Sub HScroll1_Change()

Timer1.Interval = HScroll1.Value

End Sub

Private Sub HScroll1_Scroll()

Timer1.Interval = HScroll1.Value

End Sub

Private Sub Timer1_Timer()

For i = 0 To 7

If Rnd > 0.5 Then fx = 1 Else fx = -1

'产生控制随机变化的方向

Command1(i).Left = Command1(i).Left + fx * Rnd * Command1(i).Width * 0.1 '调整控件水平位置

If Command1(i).Left < 0 Then Command1(i).Left = Form1.Width - Command1(i).Width '控件越界处理

If Command1(i).Left + Command1(i).Width > Form1.Width Then Command1(i).Left = 0

Command1(i).Top = Command1(i).Top + fx * Rnd * Command1(i).Height * 0.1

'调整控件垂直位置

If Command1(i).Top < 0 Then Command1(i).Top = Form1.Height - Command1(i).Height '控件越界处理

If Command1(i).Top + Command1(i).Height > Form1.Height Then Command1(i).Top = 0

Next i

End Sub

4结束语

本文通过对VB基本概念中典型参数的综合运用,实现了一个简单的小游戏。在实践教学过程中效果非常明显。学生普遍将注意力由简单概念背诵转变到学习综合运用中。从本质而言,这个游戏程序远不及正规软件,但它介绍了一种教学思路。这个实验可以引导学生从玩游戏到自己设计游戏,增加了学习兴趣。教学的任务就是让学生掌握一种技能,而不是单纯记忆代码。如何能够让学生综合运用知识,不是通过一两个实验能解决的,需要大家共同研究。

参考文献:

[1] 龚沛曾,杨志强,陆慰民.Visual Basic 程序设计教程[M]. 3版. 北京:高等教育出版社,2007.

[2] (美)James D.Foxall.Visual Basic 编程标准[M]. 王建华,译.北京:机械工业出版社,2000.

[3] 贾颖.“VB 程序设计”课程教学中的变量类型使用问题研究[J]. 计算机教育,2008(20).

[4] 董荣胜.计算机科学导论-思想与方法[M]. 北京:高等教育出版社,2007.

[5] 谢红霞,杜建生.“VB 程序设计”教学与实践[J]. 计算机教育,2007(10).

Parameters Control the Incident by the Use of VB to Explore About Experimental Innovation

REN Shao-bin

(Department of Computer Foundation Education, TaiYuan University of Technology, Taiyuan 030024, China)

Abstract: In this paper, the current process of learning VB, the control parameters to use the incident to an effective exploration. The use of process parameters in program design is an important part of the existing materials are rarely introduced. Students in the learning process has not been given sufficient attention. This article focused on the parameters of the mouse event coordinates the use of methods and procedures as an example of the fundamental ways of learning.

Key words: VB programming language; function; VB controls; parameter

猜你喜欢

VB程序设计控件
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
浅谈VB程序设计的教与学
贯穿式案例教学法在《VB程序设计》中的实践研究
一体化教学在《VB程序设计》课程中的实践研究
浅析VB程序设计教学方法的改革
VB程序设计的教学改革思考
浅谈VB的通用对话框《CommonDialog》控件的使用
食品专业的《VB程序设计》教学方法探究
VB案例教学