如何使用VB编写一个简单的小程序?

如何使用VB编写一个简单的小程序?,第1张

在桌面上,鼠标左键双击程序,在打开的VB6主界面上,左边是工具菜单栏,单击标签按钮,兆岁在Form1窗口上,绘制出悔猜腊一Label1,然后在其属性窗口上改个名字,如Caption为第一数,如下图所示。

接着,用同样的方法,在Form1窗口上绘制出第二数,并且在左边工具菜单栏,单击文本框按钮,并绘制出来。在文本框属性栏的Text属性上,将其Text1删除,也就是清空数据,如下图所示。

然后,反复用第一步骤和第二步骤做成如图所示的界面来,学习需要反复练习,在练习中不断进步。这里是做简单的加法程序,如下图所示。

接着,加法程序的界面做好后,还不能执行加法运算,必须还要在Form1窗口上绘制出一个命令按钮来,在左边工具菜单栏,单击命令按钮,并绘制出来。然后给其属性窗口下Caption改名为计算,如下图所示。

然后,程序看起来是做好了,单击如图所示的运行按钮,d出自己做出的Form1窗口,输入数字3和6,然后单击计算。可是结果并没有出现,如下图所示。

最后,前面5个步骤只是做碧滑了程序的界面,想要程序出结果,那必须加些代码了,既然是简单程序,只加一行代码就可以了。双击命令按钮,在代码窗口中输入如下:Text3.Text = Val(Text1.Text) + Val(Text2.Text)后,再单击运行,输入数字,单击计算,此时就出现结果了,如下图所示。

对编程者来说,VB很容易上手,但要深入、灵活地驾驭它还要下一番功夫。笔者在这里介绍几稿猜个较为典型的编程技巧,希望能对广大VB爱好者有所帮助。

一.怎样创建自定义的光标

1.当在设计一个应用程序时,Visual Basic允许程序员将许多控件的MousePointer属性设计成12个预先定义好的鼠标光标之一。然而,有些程序员或许会希望显示一个预定义形状之外的光标。本文说明如何创建一个不同的鼠标指针(光标),包括为一个没有MousePointer属性的控件创建光标。

要在Visual Basic应用程序中将光标(鼠标指针)改变成个不同的形状,可以添加代码来改变希望监视的控件的MouseMove和DragOver事件

MouseMove事件所包含的代码用于触发该控件的Drag方法。当鼠标在被选中的控件上移动的时候,轮流显示新的鼠标指针。当鼠标指针离开该控件时,则DragOver事件被触发。在Visual Basic程序中,可以重新复位此Drag属性,以便以前的鼠标指针能够被再次显示出来。

2.下面的样例程序实现当鼠标指针移动到一个文件列表框控件上时,将其改变成不同的形状。

首先采用缺省的方碧敬宏法建立Form1。在Form1上添加一个文件列表框控件,采用缺省的方法建立File1。将File1控件的DragIcon属性设置为所选择的.ICO文件。

将如下代码添加到File1的MouseMove事件中:

Private Sub File1-MouseMove(ButtonAs

Integer, Shift As Integer, X As Single, Y As Single)

File1.Drag 1 ''icon on

End Sub

---- 将如下代码添加到Form1的DragOver事件中:

Private Sub Form-DragOver(Source As Control,

X As Single, Y As Single, State As Integer)

File1.Drag 0 ′icon off

End Sub

按下F5功能键执行此程序。得到的运行结果是:将鼠标指针移动到该文件列表框控件上时,程序将把所选中的.ICO文件作为缺省的鼠标光标;将鼠标指针离开该控件时,光标则会自动恢复为缺省的形状。

二.怎样在窗体上点鼠标右键产生一个d出式选单(PopUp Menu)?

大家都知道,在Windows95/98/2000的桌面和许多流行软件的视窗中,当我们点鼠标右键时,会在鼠标的当前位置d出一个快捷选单。许多爱好编程的朋友是不是也希望能在自己的程序里有类似的功能呢?其实,这并不困难。笔者经过一番努力,在VB下找出一个通用的方法,供大家分享。

要实现上述功能,需分两个步骤:

1. 利用VB的选单我器(Menu Editor)我你希望d出的选单及子选单,注意,要将选单的Visible属性设置为:False。

2. 在窗体(Form1)的MouseDown事件中编写程序,来激发我好的选单,假设选单名为PopMenu,程序源码如下:

Private Sub Form-MouseDown

(Button As Integer, Shift As Integer,

X As Single, Y As Single)

If Button = vbRightButton Then

PopMenu.Visible = True

PopupMenu PopMenu

End If

End Sub

上述方法是针对窗体的,我们也可以针对任意控件,用鼠标右键点击控件时,也d出一个快捷选单。方法也很简单,只要把上述代码放到相应控件的MouseDown事件中,就可以了。

三.怎样动态地在窗体上判断某区域内是否有控件存在?

在笔者的一个小程序中,想在窗体的某个区域输出数据,这就要求在这个区域内不能有其他控件存在,那么,怎么才能知道在窗体的某个区域内,是否有控件存在呢?

为了判断在窗体的悔册某个区域中,是否含有控件,我们可以利用以下VB程序来实现:

Function GetControl(x1 As Single, y1 As Single,

x2 as Single, y2 as Single) As Control

Dim Control as Control

For Each Control In Form1

With Control

If (x1 〈= .Left) And (x2 〉= .Left) And _

(y1 〈= .Top) And (y2 〉= .Top) Or _

(x1 〈=.Left + Width) And (x2 〉= .Left + Width) And _

(y1 〈= .Top) And (y2 〉= .Top) Or _

(x1 〈= .Left) And (x2 〉= Left) And _

(y1 〈= .Top + Height) And (y2 〉= .Top + Height) Or _

(x1 〈= . Left + Width) And (x2 〉= .Left + Width) And _

(y1 〈= .Top + Height) And (y2 〉= .Top + Height) Then

Set GetControl = Control

Exit Function

End If End With

Next

Set GetControl = Nothing

End Function

注:(x1, y1)和(x2, y2)分别为选定矩形区域的左上角和右下角点的坐标值。

该程序通过计算窗体上所有控件的四个角的位置来判断控件是否与选定区域相交,并返回相交的控件。

敲代码很好学。

在面向对象的程序设计中,我们把外界的刺激用事件来表示,而把对这个事件的反应称为事件过程。

可视化和事件驱动正是使用VB进行Windows程序设计的精髓所在。事件驱动,即事件发生时,程序才会运行,在没有事件时,整个程派老序处于停滞状态。事件决定了对象之间的联系。在VB中,事件就是能够被对象识别的动作,如用鼠标单击或双击,键盘输入、鼠标的移动、窗体的载入,还有定时器产生的定时信号。

VB的每个窗体和控件都有一个预定义的事件集,它们能够察羡慧自动识别属于事件集中的事件,大多数类型的事件是各种控件所共有的,例如命令按钮和窗体都可以对单击、双击和按键这样的事件做出响应,而某些事件只能发生在特定的对象上。 *相同的事件发生在不同的对象上得到的反应是不一样的,造成这种差异是事件过程的缘故,对象对每一个可以识别的事件都有一个事件过程,当事件发生时,会自动执行这个事件的过程。语法如下:

Private Sub 对象名_事件()

处理事件的程序代码

End Sub

在VB程序设计过程中,基本的思想就是改变对象的属性,使用对象的方法和为对象的事件编写事件过程。除非有必要,用户不必为所有的事件编写事件过程,Windows系统会以默认的方式来处理事件。使用VB编写程序的妙处在于:只有当用户要以某种特定方式来响应某个事件时,才有必要针对某个事件的事件过程。

事件驱动程序中典型的事件序列:

启动应用程序,装载并显示窗体,产生Load和Show事件。

窗体或窗体上的控件接收事件。事件可以由用户引发、由系统引发,也可以由代码间接引发。

如果在相应的事件过程中存在代码,则执行代码。

应用程序等待下一次事件。

应用程序中使用一个窗体时,程序开始运行时窗体接收到了Load消息,从而引发了窗体的Load事件,在这个默认的事件过程中,什么语句都没有,这个过程只是调用就结束了,而VB则执行了一个重要的默认 *** 作——把窗体装入内存。

许多事件的发生常常会伴随其它事件发生:双击事件发生时,按下鼠标键、复原鼠标键和单击事件也会发生。

希望我能帮助你解疑释惑败答。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12470323.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存