VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - VB编程中的雕虫小技五则
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:10307, 日期:2001-11-13
VB编程中的雕虫小技五则
内容:VB环境下调试程序时进入死循环的解决方案等

许多网友来信,问:土人啊,那么久不见你的文章了,是不是不用VB了?怎么会呢!只是近段时间忙些业务,暂时抽不出时间来。为了证明土人还钟爱VB,整理几则学习VB时随手记下的体会,拿出来让大家瞧瞧。见笑了。

一、调试程序进入死循环怎么办?

程序在制作过程中不断地进行调试是观察其正确性、稳定性等的手段之一,程序员可以籍此修改、完善自己的程序。有时因为算法上的错误,程序进入死循环,调试中的程序和VB编辑环境均无反应,这时很多人会按下Ctrl+Alt+Del结束任务。这样做只有退出VB,其结果是可想而知的!
其实大可不必这么做。下一次真的进入死循环的话,试一试按下Ctrl+Pause(有些键盘此键标为Break)!好了,说声谢天谢地——哦,不,说声感谢土人吧!

二、改变按钮颜色

当自定义了窗体的背景色,是否觉得窗体上默认背景色的按钮与窗体极不协调?我们在属性窗口或Form_Load事件中用代码来设置按钮的背景色,却发现总不认帐!
有没有招儿?有!
把按钮的Style属性设为1-Graphical(图形的)。OK,你可以随心所欲地设置按钮的背景颜色了。

三、让你的程序随Windows启动

让程序自启动至少有三种方法:将程序放入程序组;利用Win.ini文件;在注册表相关项作设置。前者过于初级,后者又不好操作,来个折中的吧,用第二种方法。
先申明写入INI的API函数:
Declare Function WritePrivateProfileString Lib _
"kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName _
As Any, ByVal lpString As Any, ByVal lpFileName As _
String) As Long
然后:(假设E:\MySoft目录下有个A.EXE文件)
Dim WriteIni as String
WriteIni = WritePrivateProfileString("Windows", "Run", "E:\MySoft\A.exe", "C:\Windows\win.ini")
看出来没有?就是把要自启动的程序放到Win.ini的[Windows]中"[Run]="后面即可。(通常,这一节总是空的,为什么不用呢?)

四、快速复制现有的控件

有时候,我们需要将一个窗体的所有控件移植到另一个窗体或另一个工程中。请点击"编辑-全选",看见了吧:所有控件被选中。接着新建一个窗体或工程,在新窗体上单击右键,选取粘贴,哈哈,奇迹发生了吧?剩下的事是调整一下窗体的大小了。
如若只复制部分控件呢?也有办法:按Ctrl键不放,鼠标单击所需控件,确认后松开Ctrl键,右键单击选中控件中的一个,接下来你该知道怎么做了吧?
——必须注意的是,要保证在左边的General工具栏里已经有了所要复制的控件,否则复制失败。

五、一次性显示数据库中指定的字段

假设我们已经在窗体上绘制了如下控件:Data,Label,Command Button,TextBox各一个。其中,TextBox用于显示数据库指定表中指定字段的全部内容,所以应将其MultiLine属性设为True,必要的话加上滑动杆。Data控件自然要和数据库联接好,并记得将Label控件与字段捆绑起来。详细代码如下:

Private Sub Command1_Click()
Text1.Text = Label1.Caption 注释:获取第一个记录
Dim I As Integer, N As Integer 注释:两个计时器
Data1.Recordset.MoveLast 注释:移到最后:获取记录总数
I = Data1.Recordset.RecordCount 注释:给I变量赋值
Data1.Recordset.MoveFirst 注释:移回第一个记录

注释:获取第一个记录以后的所有记录
For N = 1 To I
Data1.Recordset.MoveNext
Text1.Text = Text1.Text + vbCrLf + Label1.Caption
Next N
Command1.Enabled = False 注释:令按钮无效:避免再点击出错
End Sub