VB编程的必备技巧
---- 对编程者来说,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文件作为缺省的鼠标光标;将鼠标指针离开该控件时,光标则会自动恢复为缺省的形状。
---- 二.怎样在窗体上点鼠标右键产生一个弹出式选单(PopUp Menu)?
---- 大家都知道,在Windows95/98/2000的桌面和许多流行软件的视窗中,当我们点鼠标右键时,会在鼠标的当前位置弹出一个快捷选单。许多爱好编程的朋友是不是也希望能在自己的程序里有类似的功能呢?其实,这并不困难。笔者经过一番努力,在VB下找出一个通用的方法,供大家分享。
---- 要实现上述功能,需分两个步骤:
---- 1. 利用VB的选单编辑器(Menu Editor)编辑你希望弹出的选单及子选单,注意,要将选单的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
---- 上述方法是针对窗体的,我们也可以针对任意控件,用鼠标右键点击控件时,也弹出一个快捷选单。方法也很简单,只要把上述代码放到相应控件的MouseDown事件中,就可以了。
本信息来源于:http://bbs.diybl.com --------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 我很想知道一些线程中的细节问题 --------------------编程问答-------------------- 对编程者来说,想学好软件,你要和硬件相结合。能用软件控制好硬件,才是good --------------------编程问答-------------------- 这是一个VB6问题,不应该发到VB.Net里来吧.
而且并不是每种工程都要把鼠标变来变去的
VB6当中弹出菜单本来就不是什么难题
在VB.Net中的控件上有MouseEnter和MouseLeave,对鼠标的捕获有更多选择,弹出菜单也是一个控件,制作起来更直观,而且可以直接设定到想要显示菜单的控件上 --------------------编程问答-------------------- 学习,刚想踏入VB的大军中来
补充:.NET技术 , VB.NET