第一篇:VB知识点总结
第一章
一、软件的概念
人们针对某一需要而为计算机编制的指令序列称为程序。程序、数据连同有关的说明资料统称为软件。软件:应用软件
系统软件
二、编程的概念
编程就是为了通过计算机实现某一个功能,达到某种目的或解决某个问题,而使用程序设计语言编写程序并实现结果的过程。
编程的作用:编程实际上也就是“人给计算机下命令”的一个过程,而程序也是人和计算机之间唯一的沟通方式。
三、程序设计语言发展史
1、机器语言:是计算机能够直接理解的语言,由二进制代码0和1组成。
2、汇编语言:是一种使用符号代替0和1的语言,但需要汇编程序翻译成机器语言目标程序,简称汇编。
3、Basic语言:(初学者通用符号指令代码)它使用的语句简单,能够像英语指令一样读解。
4、C语言:拥有很小的语言库,对于不同计算机或不同系列的处理器,只需要重新设计这些库,不必改变程序接口(语言)就可以进行程序编写,而且C语言具有可移植性,源代码可以重用,在不同计算机上运行只需对其重新编译即可
5、C++语言:具有其父语言C语言的功能以及使用面向对象功能扩展C语言。
6、Java语言:起初被称为OAK语言,后来将OAK技术应用于Web上。
7、在此模式之上,不同的程序设计语言创建的应用程序能够互相通信。
四、.NET平台及VB.NET
1、.NET的优势:支持多语言
提供庞大的基类库供程序员随时调用。*集成开发环境(IDE)
2、.NET平台的构成:操作系统
公共语言运行库(也称公共语言运行时:CLR)
基类库
应用程序
公共语言规范(CLS)
VB.NET是.NET平台已有的几种语言之一,它继承了VB以前版本的优点,非常容易学习,是一门很好的入门语言。具有快速开发的特点。
第二章
一、常量和变量
常量:是具有一定含义的名称,用于代替数字或字符串,其值从不改变 声明常量的语法:
Const 常量名称=值
如 Const pi=3.14 变量:在程序运行过程中其值可以改变的数据称为变量,它是一种使用方便的占位符,用于引用计算机的内存地址,该地址可以存储程序已运行时可更改的信息。声明变量的语法:
Dim 变量名称=值
(单个变量)
如 Dim r=0
(多个变量写在一行,用逗号隔开)
Dim 变量1=值1,变量2=值2
如 Dim r=0,s 变量命名规则:
1、只能由字母、数字和下划线组成
2、第一个字符必须是英文字母或下划线
3、长度不能超过255个字符
4、不能使用VB.NET中的保留字
二、VB.NET的数据类型
1、Numeric数字型
<1>Integer(整型)用于表示简单地整数,同时整型还包含负整数
<2>Long(长整型)相对Integer类型的取值范围更大,可以存储更长的整数类型 <3>Single(单精度浮点型)用于存放单精度浮点数,也就是小数 <4>Double(双精度浮点型)数据类型写在声明变量语句“Dim 变量名 As”之后,如:Dim age As Integer
2、Boolean(布尔型)若变量的值只包含以下三种等数据,即可声明为布尔型 <1> Ture/False <2> Yes/No <3>On/Off 声明变量为布尔型:Dim agree As Boolean
3、String(字符串型)数据中包含文字、符号、字母等字符或字符串,这种数据即为字符串,字符串用双引号括起来。
声明变量为字符串型:Dim myyear As String
Myyear=”2007”
4、Char(字符型)在只需保存单个字符时,使用Char即可,方法同String
5、Date(日期型)如声明日期为常量,需在数据两端添加符号“#”而且要求格式为m/d/yyyy(即月/天/年)如:Const myBirth=#11/10/1990#
三、使用类型转换函数
1、CInt:用于将String、Single、Double转换为Integer(如果非整,即四舍五入)如:Dim n As Integer,m As Integer n= CInt(3.14)m= CInt(12.56)
2、CDbl:用于将String或整形转换为Double 如:Dim m As String Dim n As Double m=”255” n= CDbl(m)
四、运算符和表达式
1、操作数:被操作或被运算的对象、常量、变量、运算符都是操作数
2、运算符:表示某种运算的符号。包括算术运算符、赋值运算符、关系运算符、逻辑运算符、连接运算符
3、表达式:一个以上的操作数和运算符进行运算构成了表达式。如:(a+b)*2
4、介绍运算符
<1>赋值运算符 =(不是表示相等,而是将右边的值赋给等号左边的变量)<2>算术运算符 +、-、*、/。
<3>逻辑运算符:用于执行逻辑操作的运算符,运行结果是Ture或False Not(取反)当操作数为假时,结果为真
And(与)
当两个操作数为真时,结果为真
Or(或)
当Or两侧的操作数之一为真时,结果为真 <4>关系运算符 =、>、>=、<、<=、<> <5>连接运算符(&/+)
如:“Micro”&”soft”=”Microsoft” “123”+”456”=”123456” “12”&30=”1230” “12”+30=42 当一个表达式有多种运算符时,先处理算术运算符,接着处理关系运算符,再处理逻辑运算符,所有关系运算符具有相同的优先级,即按他们出现的顺序从左到右进行处理。
第三章
一、了解什么是类和对象,会调用对象,并了解对象的方法和属性
1、对象:在软件工程中对象就是一个项目中的一个组成部件,包含数据和函数或(子过程)代码。
2、类:用于指定一组相似的对象。
类实例化的语法:Dim 对象名称As New 类名
如:Dim zhangsan As New student
3、方法就是对象可以进行的操作行为,子过程和函数都叫做方法。动态方法:必须先实例化对象之后
静态方法:不需要实例化对象就可以直接使用
调用类、对象的方法:类或对象的名称,加上一个句点,后边写上方法名称和一对括号,括号中可以有参数也可以没有参数。如 Student.PassPara(MyVal,MyRef)
4、属性:对象的特征,也就是对象的数据部分
调用方法同上:类或对象的名称,加上一个句点,后边写上属性名称。
二、理解什么是函数和过程,以及两者的区别
1、Sub子过程是指以规定语法结构组织的,可以被重复调用的,具有特定功能的,相对独立的语句块。
2、Function函数的概念同Sub类似,不同的是函数有返回值。
两种的区别:都可以实现被重复调用的功能,但区别主要表现在Function带有返回值,它可以直接用于给变量赋值,而Sub没有返回值。
三、会声明子过程和函数,并掌握在程序中调用子过程和函数的方法 声明子过程的语法: Sub 过程名(形参列表)
过程体 End Sub 如:代码片段1 Sub ShowTime()Console.WriteLine(Datetime.Now)End Sub 代码片段2 Sub Main()ShowTime()End Sub 声明Function的语法:
Function 函数名(形参列表)As 返回类型
函数体„
Return 函数名 End Function *可以没有特定的Return语句,通过将值赋给其自身的函数名称的方法来返回。
四、了解是什么是Windows应用程序
软件开发的两种主流模式:C/S 客户端/服务器 B/S浏览器/服务器
Windows应用程序也叫窗口应用程序,是运行在Windows系统环境下得应用程序,例如金山词霸,杀毒软件等。C/S模式开发的软件是Windows应用程序的一种。
五、了解windows窗体的特性和结构
1、窗体也是一个类,一个应用程序能够有一个或一个以上的窗体。
2、窗体的结构:标题、系统菜单、控制盒、控制块
六、掌握windows窗体的方法和事件
1、VB.NET自动创建的一个窗体类代码 Public Class Form1 End Class
2、切换窗体设计界面,双击窗体,VB.NET自动创建Form1_Load方法
Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Load MessageBox.Show(“欢迎使用学生档案信息系统”)End Sub
七、掌握如何设置窗体的属性(以窗体的大小为例)
1、通过修改“属性窗口”的值
2、通过拖拽来修改窗体大小属性
3、通过编写程序来修改窗体大小属性 Me.Width=410 Me.Height=300 Me.Text=”首页” 第四章
一、掌握MessageBox.Show()方法的使用 语法:
MessageBox.Show(Text As String,Caption As String, MessageBoxButton)Text:在消息框中显示文本(必须出现,没有内容,也用一个空字符占位)Caption:在消息框标题栏中显示文本
MessageBoxButton:指定在消息框中出现的按钮
二、掌握MessageBox.Show()方法重载 MessageBox.Show(Text As String)
MessageBox.Show(Text As String,Caption As String)
几个参数不一定需要全部出现,允许存在多个同名函数,且这些函数的参数列表不同的用法,叫作方法的重载。
三、掌握MessageBoxButton的几个选项
1、MessageBoxButton.OK、2、MessageBoxButton.OKCancel、3、MessageBoxButton.YesNo、4、MessageBoxButton.YesNoCancle
5、MessageBoxButton.RetryCancle
6、MessageBoxButton.AbortRetryIgnore
四、掌握窗体控件的常用属性
1、Name(控件的名称)、2、BackColor(控件的背景色)、3、Location(控件所处的位置)、4、Size(控件的大小)、(Width,Height)
5、Visible(控件是否可见)
五、掌握常用窗体控件的相关属性及事件
1、PictureBox:BackgroundImage,size
2、Label:称为标签控件,用于显示文本,通常作为文字的载体。Font(字体)
3、TextBox:提供给用户输入文本信息的控件,又称文本框控件。
<1>“Text”属性用来在控件中显示文本信息,将“ReadOnly”设为“Ture”,不允许用户修改文本。
<2>“PasswordChar”指定一个在输入密码是文本框中显示的字符。<3>“Multiline”设为“Ture”,使单行文本框变为多行的文本框
“Height”设置文本框控件的行数
“ScrollBars”滚动条显示:None
Horizontal
Vertical
Both <4>”Anchor”用于固定控件和窗体边缘的距离:Top、Left、Bottom、Right <5>”Dock”固定控件紧贴并填满在窗体的某个边缘:None、Top、Left、Bottom、Right、Fill
4、Button:按钮控件 Text:按钮上显示的文字
可以喂按钮设置快捷键,在Text属性中书写“&Quit”,按钮上显示的文本第一个字母会被加上下划线,按Alt+Q关闭
5、CheckBox :复选框控件,Checked属性控制是否被选择。Ture/False
6、RadioButton:单选框控件,通常以一组选项按钮的形式出现,但用户只能选其中一个,也具有Checked属性以及Checkchanged事件。
7、GroupBox和Panel 将需要进行分组的控件放入分组控件的区域内,即可实现分组,这种可以将其他控件进行分组的控件称为容器控件。
GroupBox有Text属性,而Panel没有,也不显示边框,Panel中的内容超出范围,自动在边缘添加滚动条,而GroupBox没有这个特性。
第二篇:vb基本知识点的归纳
1.比特计量单位的理解和运算,不同进制数据的表示和之间的转换运算,数值信息的编码
表示(原码补码、阶码)
2.汉字:编码(不同编码的作用和区别(机内码),汉字编码标准的特点(表示字节数、表示汉字和字符的数量、简繁体覆盖、兼容情况)),字库字形的概念、种类和关联
3.西文字符编码和汉字编码的区分
4.集成电路技术的知识点(使用重要材料、构成、工艺、集成度、应用、发展趋势和规律)
5.通信技术(通信系统的组成、常见应用所使用的设备和技术的对应情况,常用通信技术的特点和适用场合,信息技术的概念、分类以及对应功能,常见通信方式的特点)
6.计算机硬件:主要设备的构成、功能、种类和供应商情况(CPU、存储设备、输入和输
出设备),存储设备的构成和性能特点(主存储器、辅助存储器(硬盘、光盘、移动存储器、软盘)),核心设备的性能和关联(CPU、内存、主板、输入设备、输出设备),常用接口的连接、位置和使用(I/O接口、总线、IDE、ISB、FOREWIRE),指令(概念、组成和处理器CPU之间的关联),PC机启动的流程(基本的输入输出系统BIOS、CMOS的作用和构成)
7.计算机软件:概念、分类、版权、常见软件的归类
8.计算机网络(网络设备的使用场合、种类和功能,网卡IP地址(作用、种类、组成和
合法性的判断、使用场合、含义),常用网络传输介质的特点和使用场合,局域网(工作模式、使用协议、构建设备、常见构型种类的特征和区别),URL的格式、作用和含义,常见协议的作用(TCP/IP、DNS、FTP、SMTP、TELNET、POP、HTTP、UDP),网络接入技术(种类、实现技术和设备、特点和速度对比),INTERNET的基本服务和基本操作(功能、组成、工作模式等)
9.多媒体(常见多媒体(声音、视频、图像)文件的格式、特点和使用场合,多媒体设备的作用,彩色图象的颜色模型(使用场合和种类),压缩编码标准和特点,多媒体信息的处理步骤和主要性能参数,多媒体信息量的计算方法(声音、图象、视频))
10.数据库(信息系统,SQL的作用)
11.程序设计的基本概念(计算机语言的种类和特点,算法(概念、特征),程序,数据结
构,三大基本程序控制结构)
12.Windows操作系统的特点(其他常见操作系统的特点,功能(文件管理(操作方法)、存储管理(技术)、处理器管理、进程管理),常用附件的操作方法(画图),输入法设置和支持情况,系统工具,目前版本信息、常用组合键的作用、回收站的设置)
13.OFFICE软件的功能(WORD(视图的选择、密码设置、格式刷的作用计量单位、页面
和页码设置、表格排序和计算、统计功能和大小写更改、插入对象情况、绘制工具的作用),PPT(保存格式、幻灯片的设置和打印、放映形式、字体替换、排练计时的作用、插入对象情况),EXCEL(基本参数,功能、排序关键字的数量、保存格式、不同类型数据默认对齐方式、特殊类型数据的输入方法(分数)
第三篇:VB常见问题总结
快捷域名:http://yujimyfavorcn.programfan.com 创建于:2005-6-5 共 6篇文章 访问统计:169
VB常见问题总结
点击数:138 发布日期:2005-6-5 18:28:00 【字体:大 中 小】【评论】【打印】
各位朋友大家好,如果你在这里的时间够长,那么你会发现很多帖子的问题是相同的,既然这样,不如总结到一起让初学者来翻看,再热心的大虾也不愿意把一个答案重复几十遍:)Ryowu制作匆忙,难免错漏,还请见谅。
若朋友您想要问如何才能学好vb,或者入门需要看什么教材一类的问题,建议你抱着一颗刻苦钻研的心去面对这门学问,多动脑,少提问,遇到不知道的,多查msdn,多看老贴,或者用断点来亲自试验。实在不会了,请在此贴中查找您的常见问题,如果还没有,那请您发出新贴,向各位高手讨教:)
查找方法:按ctrl+f,输入要查找的问题关键字即可
注明:本贴源于VB编程乐园网站,本人只是稍微编辑了一下。
每个问题中间用///分隔,这只是一部分最常见到的问题,以后会逐渐更新。
//////////////////////////////////////////////////////////////////////////////////// 如何用VB建立快捷方式
Private Declare Function fCreateShellLink Lib “STKIT432.DLL”(ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArgs As String)As Long Sub Command1_Click()Dim lReturn As Long '添加到桌面
lReturn = fCreateShellLink(“....Desktop”, “Shortcut to Calculator”, “c:windowscalc.exe”, “")'添加到程序组
lReturn = fCreateShellLink(”“, ”Shortcut to Calculator“, ”c:windowscalc.exe“, ”“)'添加到启动组
lReturn = fCreateShellLink(”Startup“, ”Shortcut to Calculator“, ”c:windowscalc.exe“, ”“)End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何让程序在 Windows 启动时自动执行?
有以下二个方法:
方法1: 直接将快捷方式放到启动群组中。
方法2: 在注册档 HKEY_LOCAL_MACHINE 中找到以下机码 SoftwareMicrosoftWindowsCurrentVersionRun 新增一个字串值,包括二个部份
1.名称部份:自己取名,可设定为 AP 名称。
2.资料部份:则是包含 '全路径档案名称' 及 '执行参数' 例如:
Value Name = Notepad Value Data = c:windowsnotepad.exe
//////////////////////////////////////////////////////////////////////////////////// 在 TextBox 中如何限制只能输入数字?
参考下列程序:
Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If End Sub
//////////////////////////////////////////////////////////////////////////////////// 我希望 TextBox 中能不接受某些特定字符,例如 '@#$%”,有没有简单一点的写法?
方法有好几种, 以下列举二种:
方法1: 可以使用 IF 或 Select Case 一个个判断, 但如果不接受的字符多时, 较麻烦!方法2: 将要剔除的字符统统放在一个字串中,只要一个 IF 判断即可!如下: Private Sub Text1_KeyPress(KeyAscii As Integer)Dim sTemplate As String sTemplate = “!@#$%^&*()_+-=” '用来存放不接受的字符 If InStr(1, sTemplate, Chr(KeyAscii))> 0 Then KeyAscii = 0 End If End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何让鼠标进入 TextBox 时自动选定 TextBox 中之整串文字?
这个自动选定反白整串文字的动作,会使得输入的资料完全取代之前在 TextBox 中的所有字符。
Private Sub Text1_GotFocus()Text1.SelStart = 0 Text1.SelLength = Len(Text1)End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何检查软盘驱动器里是否有软盘?
使用:
Dim Flag As Boolean
Flag = Fun_FloppyDrive(“A:”)If Flag = False Then MsgBox “A:驱没有准备好,请将磁盘插入驱动器!”, vbCritical
' '函数:检查软驱中是否有盘的存在 ' Private Function Fun_FloppyDrive(sDrive As String)As Boolean On Error Resume Next Fun_FloppyDrive = Dir(sDrive)<> “" End Function
//////////////////////////////////////////////////////////////////////////////////// 如何弹出和关闭光驱托盘?
Option Explicit
Private Declare Function mciSendString Lib ”winmm.dll“ Alias ”mciSendStringA“(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long)As Long
Private Sub Command1_Click()mciExecute ”set cdaudio door open“ '弹出光驱 Label2.Caption = ”弹 出“ End Sub
Private Sub Command2_Click()Label2.Caption = ”关 闭“
mciExecute ”set cdaudio door closed“ '合上光驱 Unload Me End End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何让你的程序在任务列表隐藏
Private Declare Function RegisterServiceProcess Lib ”kernel32“(ByVal ProcessID As Long, ByVal ServiceFlags As Long)As Long Private Declare Function GetCurrentProcessId Lib ”kernel32“()As Long
'请你试试 Ctrl+Alt+Del 是不是你的程序隐藏了 Private Sub Command1_Click()i = RegisterServiceProcess(GetCurrentProcessId, 1)End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何用程序控制滑鼠游标(Mouse Cursor)到指定位置?
以下这个例子,当 User 在 Text1 中按下 'Enter' 键后,滑鼠游标会自动移到 Command2 按钮上方
请在声明区中加入以下声明:
'16 位版本:(Sub 无传回值)Declare Sub SetCursorPos Lib ”User“(ByVal X As Integer, ByVal Y As Integer)
'32 位版本:(Function 有传回值,Integer 改成 Long)Declare Function SetCursorPos Lib ”user32“(ByVal x As Long, ByVal y As Long)As Long
'在 Form1 中加入以下程序码:
Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then x% =(Form1.Left + Command2.Left + Command2.Width / 2 + 60)/ Screen.TwipsPerPixelX y% =(Form1.Top + Command2.Top + Command2.Height / 2 + 360)/ Screen.TwipsPerPixelY SetCursorPos x%, y% End If End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何用鼠标移动没有标题的 Form,或移动 Form 中的控制项?
在声明区中放入以下声明:
'16 位版本:(Sub 无返回值)Private Declare Sub ReleaseCapture Lib ”User“()Private Declare Sub SendMessage Lib ”User“(ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, lParam As Long)
'32 位版本:(Function 有返回值,Integer 改成 Long)Private Declare Function ReleaseCapture Lib ”user32“()As Long Private Declare Function SendMessage Lib ”user32“ Alias ”SendMessageA“(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)As Long
'共用常数:
Const WM_SYSCOMMAND = &H112 Const SC_MOVE = &HF012
'若要移动 Form,程序码如下:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim i As Long i = ReleaseCapture i = SendMessage(Form1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0)End Sub
'以上功能也适用于用鼠标在 Form 中移动控制项,程序码如下:
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim i As Long i = ReleaseCapture i = SendMessage(Command1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0)End Sub
//////////////////////////////////////////////////////////////////////////////////// 检查文件是否存在?
Function FileExists(filename As String)As Integer Dim i As Integer On Error Resume Next i = Len(Dir$(filename))If Err Or i = 0 Then FileExists = False Else FileExists = True End Function
//////////////////////////////////////////////////////////////////////////////////// 如何设置对VB数据库连接的动态路径
我个人因为经常作一些数据库方面的程序,对于程序间如何与数据库进行接口的问题之烦是深有体会,因为VB在数据库链接的时候,一般是静态,即数据库存放的路径是固定的,如用VB的DATA,adodc,DataEnvironment 等到作数据库链接时,如果存放数据库的路径被改变的话,就会找不到路经,真是一个特别烦的事。
笔者的解决方法是利用app.path 来解决这个问题。
一、用data控件进行数据库链接,可以这样: 在form_load()过程中放入: private form_load()Dim str As String '定义 str = App.Path If Right(str, 1)<> ”“ Then str = str + ”“ End If data1.databasename=str & ”数据库名“ data1.recordsource=”数据表名“ data1.refresh sub end 这几句话的意为,打开当前程序运行的目录下的数据库。你只要保证你的数据库在你程序所在的目录之下就行了。
二、利用adodc(ADO Data Control)进行数据库链接: private form_load()Dim str As String '定义 str = App.Path If Right(str, 1)<> ”“ Then str = str + ”“ End If str = ”Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=“ & str & ”tsl.mdb“ Adodc1.ConnectionString = str Adodc1.CommandType = adCmdText
Adodc1.RecordSource = ”select * from table3“ Adodc1.Refresh end sub
三、利用DataEnvironment进行数据库链接 可在过程中放入: On Error Resume Next
If DataEnvironment1.rsCommand1.State <> adStateClosed Then DataEnvironment1.rsCommand1.Close '如果打开,则关闭 End If 'i = InputBox(”请输入友人编号:“, ”输入“)'If i = ”“ Then Exit Sub
DataEnvironment1.Connection1.Open App.Path & ”userdatabasetsl.mdb“ DataEnvironment1.rsCommand1.Open ”select * from table3 where 编号='“ & i & ”'“ 'Set DataReport2.DataSource = DataEnvironment1 'DataReport2.DataMember = ”command1“ 'DataReport2.show end sub
四、利用ADO(ActiveX Data Objects)进行编程: 建立连接:
dim conn as new adodb.connection dim rs as new adodb.recordset dim str str = App.Path If Right(str, 1)<> ”“ Then str = str + ”“ End If str = ”Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=“ & str & ”tsl.mdb“ conn.open str rs.cursorlocation=aduseclient rs.open ”数据表名“,conn,adopenkeyset.adlockpessimistic 用完之后关闭数据库: conn.close set conn=nothing
//////////////////////////////////////////////////////////////////////////////////// 如何让用户自行输入方程式,并计算其结果?
假设我们要让使用者在“方程式”栏位中自由输入方程式,然后利用方程式进行计算,则引用ScriptControl控件可以很方便地做到。
(ScriptControl 控件附属于VB 6.0,如果安装后没有看到此一控件,可在光盘的
CommonToolsVBScript 目录底下找此一控件,其.文件名为Msscript.ocx。)假设放在窗体上的ScriptControl控件名称为ScriptControl1,则在“计算”按钮的Click事件中编写如下代码: Dim Statement As String Statement = ”X=“ + Text1.Text + vbCrLf + _ ”Y=“ + Text2.Text + vbCrLf + _ ”MsgBox “"计算结果=”“ & Y ” ScriptControl1.ExecuteStatement(Statement
//////////////////////////////////////////////////////////////////////////////////// 如何让一个 App 永远保持在最上层(Always on Top)
请在声明区中加入以下声明
Private Declare Function SetWindowPos Lib “user32”(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)As Long
Const SWP_NOMOVE = &H2 '不更动目前视窗位置 Const SWP_NOSIZE = &H1 '不更动目前视窗大小 Const HWND_TOPMOST =-1 '设定为最上层
Const HWND_NOTOPMOST =-2 '取消最上层设定 Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
'将 APP 视窗设定成永远保持在最上层
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
'取消最上层设定
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS
//////////////////////////////////////////////////////////////////////////////////// 我要如何在程序中开启网页?
在声明区中声明如下(在.bas 档中用 Public, 在 Form 中用 Private)
Private Declare Function ShellExecute Lib “shell32.dll” Alias “ShellExecuteA”(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)As Long
在程序中
Intranet:
ShellExecute Me.hWnd, “open”, “http://Intranet主机/目录”, “", ”“, 5 Internet:
ShellExecute Me.hWnd, ”open“, ”http://www.xiexiebang.com.tw“, ”“, ”“, 5
//////////////////////////////////////////////////////////////////////////////////// VB可以产生四角形以外其他形状的 Form 吗?
这个问题,您一定无法想像有多容易,您可以产生任何形状的 Form,但必须借助 CreateEllipticRgn 及 SetWindowRgn 二个 API,例如:
Private Declare Function CreateEllipticRgn Lib ”gdi32“(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long)As Long
Private Declare Function SetWindowRgn Lib ”user32“(ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean)As Long
Private Sub Form_Load()Dim lReturn As Long Me.Show lReturn = SetWindowRgn(hWnd, CreateEllipticRgn(10, 10, 340, 150), True)End Sub
执行结果图片
CreateEllipticRgn 之四个参数说明如下:
X1:椭圆中心点之X轴位置,但以 Form 的实№边界为限。Y1:椭圆中心点之Y轴位置,但以 Form 的实№边界为限。X2:椭圆长边的长度 Y2:椭圆短边的长度的
//////////////////////////////////////////////////////////////////////////////////// 如何移除 Form 右上方之『X』按钮?
其实 Form 右上方之三个按钮分别对应到 Form 左上方控制盒(ControlBox)中的几个选项(缩到最小 / 放到最大 / 关闭),而其中的最大化(MaxButton)及最小化(Minbutton)都可以直接在 Form 的属性中设定,但是 VB 并没有提供设定『X』按钮的功能!要达到这个功能,必须借助 API:
由于『X』按钮对应到 ControlBox 的关闭选项,所以我们只要移除系统 Menu(就是ControlBox)的关闭选项即可!您自己可以先看看您现在使用的 Browser 左上方的系统 Menu,【关闭】选项是在第几个,不是第 6 个!是第 7 个,分隔线也算一个!分隔线才是第 6 个!
当我们移除了关闭选项之後,会留下一条很奇怪的分隔线,所以最好连分隔线也一并移除。而 Menu 的 Index 是从 0 开始,分隔线是第 6 个,所以 Index = 5。
修正:为了让程序码在 Windows NT 也能运作正常,将各 Integer 型态改成 Long。89.05.04
'抓取系统 Menu 的 hwnd Private Declare Function GetSystemMenu Lib ”user32“ Alias ”GetSystemMenu“(ByVal hwnd As Long, ByVal bRevert As Long)As Long '移除系统 Menu 的 API Private Declare Function RemoveMenu Lib ”user32“ Alias ”RemoveMenu“(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long)As Long '第一个参数是系统 Menu 的 hwnd '第二个参数是要移除选项的 Index
//////////////////////////////////////////////////////////////////////////////////// 如何制作透明的表单(Form)?
请在声明区中放入以下声明
Const GWL_EXSTYLE =(-20)Const WS_EX_TRANSPARENT = &H20& Const SWP_FRAMECHANGED = &H20 Const SWP_NOMOVE = &H2 Const SWP_NOSIZE = &H1 Const SWP_SHOWME = SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOSIZE Const HWND_NOTOPMOST =-2
Private Declare Function SetWindowLong Lib ”user32“ Alias ”SetWindowLongA“(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long)As Long Private Declare Function SetWindowPos Lib ”user32“(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)As Long
在 Form_Load 使用的范例如下:
Private Sub Form_Load()SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0&, 0&, 0&, 0&, SWP_SHOWME Me.Refresh End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何在 Menu 中加入美美的图案?
在模组中加入以下程序码:
Declare Function GetMenu Lib ”user32“(ByVal hwnd As Long)As Long
Declare Function GetSubMenu Lib ”user32“(ByVal hMenu As Long, ByVal nPos As Long)As Long
Declare Function GetMenuItemID Lib ”user32“(ByVal hMenu As Long, ByVal nPos As Long)As Long
Declare Function SetMenuItemBitmaps Lib ”user32“(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long)As Long
Public Const MF_BITMAP = &H4&
Type MENUITEMINFO cbSize As Long fMask As Long fType As Long fState As Long wID As Long hSubMenu As Long hbmpChecked As Long hbmpUnchecked As Long dwItemData As Long dwTypeData As String cch As Long End Type
Declare Function GetMenuItemCount Lib ”user32“(ByVal hMenu As Long)As Long
Declare Function GetMenuItemInfo Lib ”user32“ Alias ”GetMenuItemInfoA“(ByVal hMenu As Long, ByVal un As Long, _ ByVal b As Boolean, lpMenuItemInfo As MENUITEMINFO)As Boolean
Public Const MIIM_ID = &H2 Public Const MIIM_TYPE = &H10 Public Const MFT_STRING = &H0&
在 Form 中加入一个 PictureBox,属性设定为: AutoSize = True Picture =.bmp(尺寸大小为 13x13,不可设定为.ico)
在 Form_Load 中的程序码如下:
Private Sub Form_Load()'取得程序中 Mennu 的 handle hMenu& = GetMenu(Form1.hWnd)'取得第一个 submenu 的 handle hSubMenu& = GetSubMenu(hMenu&, 0)'取得 Submenu 第一个选项的 menuId hID& = GetMenuItemID(hSubMenu&, 0)'加入图片
SetMenuItemBitmaps hMenu&, hID&, MF_BITMAP, Picture1.Picture, Picture1.Picture '在一个 Menu 选项中您一共可以加入二张图片 '一张是 checked 状态用,一张是 unchecked 状态用 End Sub
89、如何把小图片填满 Form 成为背景图?
对于这个问题,我看过很多方法,有的方法很麻烦,要声明一大堆 Type,用一大堆的 API,但是有一个最笨但我认为最好的方法如下:(就好像拼磁砖一样,不用任何 API, 不必声明任何 Type)
在 Form 中放一个 PictureBox,Picture 属性设定为某一张小图,AutoSize 属性性设定 True,完成的模组如下:
Sub PictureTile(Frm As Form, Pic As PictureBox)Dim i As Integer Dim t As Integer Frm.AutoRedraw = True Pic.BorderStyle = 0 For t = 0 To Frm.Height Step Pic.ScaleHeight For i = 0 To Frm.Width Step Pic.ScaleWidth Frm.PaintPicture Pic.Picture, i, t Next i Next t End Sub
PictureTile 这个模组共有二个参数,第一个是表单名称,第二个则是 PictureBox 的名称。以下为一应用实例:
Private Sub Form_Load()PictureTile Me, Picture1 End Sub
90、如何把小图片填满 MDIForm 成为背景图?
以下这个范例,要:
1、一个 MDIForm:不必设定任何属性。
2、一个 Form1:不一定是 MDIChild,最好 MDIChild 为 False,但是 AutoRedraw 设成 True。
3、Form1 上面放一个隐藏的 PictureBox:名称为 Picture1,不必设定 Picture 属性。
4、一张图片的完整路径。
'将以下模组放入 MDIForm 的声明区中:
Sub TileMDIBkgd(MDIForm As Form, bkgdtiler As Form, bkgdfile As String)If bkgdfile = ”“ Then Exit Sub Dim ScWidth%, ScHeight% ScWidth% = Screen.Width / Screen.TwipsPerPixelX ScHeight% = Screen.Height / Screen.TwipsPerPixelY Load bkgdtiler bkgdtiler.Height = Screen.Height bkgdtiler.Width = Screen.Width bkgdtiler.ScaleMode = 3 bkgdtiler!Picture1.Top = 0 bkgdtiler!Picture1.Left = 0 bkgdtiler!Picture1.Picture = LoadPicture(bkgdfile)bkgdtiler!Picture1.ScaleMode = 3
For n% = 0 To ScHeight% Step bkgdtiler!Picture1.ScaleHeight For o% = 0 To ScWidth% Step bkgdtiler!Picture1.ScaleWidth bkgdtiler.PaintPicture bkgdtiler!Picture1.Picture, o%, n% Next o% Next n%
MDIForm.Picture = bkgdtiler.Image Unload bkgdtiler End Sub
以下为一应用实例:
Private Sub MDIForm_Load()TileMDIBkgd Me, Form1, ”c:windowsTiles.bmp“ End Sub
//////////////////////////////////////////////////////////////////////////////////// 关闭指定的程序
要做到像 Task Manager 一样,可以关闭指定的程序,方法如下:
在声明区中放入以下声明:(16位 改成 win31 API)
Declare Function FindWindow Lib ”user32“ Alias ”FindWindowA“(ByVal lpClassName As String, ByVal lpWindowName As String)As Long
Declare Function PostMessage Lib ”user32“ Alias ”PostMessageA“(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)As Long
Public Const WM_CLOSE = &H10
以下之范例示范如何关闭一个视窗标题(Caption)为 【小算盘】的程序:
Dim winHwnd As Long Dim RetVal As Long winHwnd = FindWindow(vbNullString, ”小算盘“)Debug.Print winHwnd If winHwnd <> 0 Then RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)If RetVal = 0 Then
MsgBox ”Error posting message.“ End If Else MsgBox ”并未开启小算盘程序.“ End If
//////////////////////////////////////////////////////////////////////////////////// 如何隐藏及再显示鼠标
很简单,只用到了一个 ShowCursor API,参数也很简单,只有一个 bShow,设定值如下:
True:显示鼠标 / False:隐藏鼠标
Declare Function ShowCursor Lib ”user32“ Alias ”ShowCursor“(ByVal bShow As Long)As Long
//////////////////////////////////////////////////////////////////////////////////// 如何从您的应程序中结束 Windows 重开机?
很多软件在 Setup 完之后都会自动关机重开机,以便让某些设定值可以生效,其实这个功能很简单,只要几行指令就可以做到了!
关键就是要使用 ExitWindowsEx 这个 API,这个 API 只有二个参数,第一个参数是一个 Flag,目的是要告诉 Windows 要以什么方式关机,在下面的声明中会列出可用的 Flag 常数值,至于第二个参数则是一个保留值,只要设定成 0 就可以了。
很重要的一点是:如果您想要让关机动作更顺利,记得要 Unload 您的程序!
'在声明区中(Bas Module / Form Module)加入以下声明:
Public Const EWX_LOGOFF = 0 '这四个常数值可以并用 Public Const EWX_SHUTDOWN = 1 Public Const EWX_REBOOT = 2 Public Const EWX_FORCE = 4 Declare Function ExitWindowsEx Lib ”user32“ Alias ”ExitWindowsEx“(ByVal uFlags As Long, ByVal dwReserved As Long)As Long
'实例:如果您想强迫关机重开机,程序码如下:
ret = ExitWindowsEx(EWX_FORCE OR EWX_REBOOT, 0)
//////////////////////////////////////////////////////////////////////////////////// 如何用 VB 启动其他程序或开启各类文件?
要在 VB 中启动其他程序或开启各类文件,最简单的方法就是使用 Shell 函数,例如:要开启 C:Test.txt 这个文字文件,则要启动记事本来开启这个文件案,程序如下:
Dim RetVal As Long RetVal = Shell(”C:WindowsNotepad.exe C:Test.txt“, 3)'3代表视窗会最大化,并具有驻点,细节请查 Help
以上的语法虽然很简单,但有一个风险,若是我们不知道开启文件的执行文件位置,则程序便会有错误产生,尤其一般软件在安装的时候都可以让使用者自行选择安装目录,所以执行文件的路径不能写死在程序中,要解决这个问题,就是在注册文件中找到该副文件名之启动程序位置,再放入 Shell 中。
但是以上的作法必须熟悉注册文件,而且必须使用 Windows API 来 Call(注册文件的存取以后会有专文来说明),如果您对注册文件的存取及 API 的使用都很纯熟的话,当然没问题,但是有些人对于注册文件会有畏惧,这时候,您可以使用下面的方法:
Shell(”Start C:Test.txt“)
您完全不用知道这份文件的启动程序是什么?它放在什么地方?参数 Start 便会自动依照附文件名到注册文件中找到启动程序来开启该份文件案!不赖吧!
注一:在 Windows 95/98/NT平台中, 什么副文件名之文件案, 该由什么执行文件来启动, 都设在关联中,代码为 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExtensions
例如: 名称为 ”.DOC“ 之资料为 ”C:Progra~1Micros~2OfficeWINWORD.EXE ^.DOC“
名称为 ”.TXT“ 之资料为 ”notepad.exe ^.txt“
注二:使用 Start 之唯一缺点为 ”会比直接指定执行文件稍为慢 0.5-1 秒钟.“
//////////////////////////////////////////////////////////////////////////////////// 如何找出 Windows 目录的正确路径?
有时候我们在程序中必须用到 Windows 的目录,以存取 Windows 目录下的文件,照理说,这应该是最简单的功能,前提是每个人在 Setup Windows 必须采用 Windows 的预设目录名称,也就是 C:Windows,但是常常不是这样,有时候由於要使新旧版本共存,或者其他原因,有人会将 Windows 目录改成 c:win95、c:win98、Windows95 或 Windows98......若是程序中必须用到 Windows 目录,要找到正确的路径,做法如下:
'在声明区中加入以下声明:
Const MAX_PATH = 260
Private Declare Function GetWindowsDirectory Lib ”kernel32“ Alias ”GetWindowsDirectoryA“(ByVal lpBuffer As String, ByVal nSize As Long)As Long
Public Function GetWinPath()Dim strFolder As String Dim lngResult As Long strFolder = String(MAX_PATH, 0)lngResult = GetWindowsDirectory(strFolder, MAX_PATH)If lngResult <> 0 Then GetWinPath = Left(strFolder, InStr(strFolder, Chr(0))1 Next lNum sGetFile = Mid(sGetFile, 2)'得到文件名 MsgBox sGetFile
//////////////////////////////////////////////////////////////////////////////////// 如何防止使用者按下 CTRL + ALT + DEL
有些时候,我们的应用程序执行时,不希望使用者按下 CTRL + ALT + DEL 来异常结束程序或关机,这时候我们可以在启动程序时,将 CTRL + ALT + DEL 功能键之功能取消,然后在结束程序之前,再从新恢复 CTRL + ALT + DEL 之功能。
在模组声明区中加入以下声明及模组:
Declare Function SystemParametersInfo Lib ”user32“ Alias ”SystemParametersInfoA“(ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long)As Long
Public Const SPI_SCREENSAVERRUNNING = 97
Public Sub Disable_Ctrl_Alt_Del()'让 CTRL+ALT+DEL 失效 Dim AyW As Integer Dim TurFls As Boolean
AwY = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, TurFls, 0)End Sub
Public Sub Enable_Ctrl_Alt_Del()'让 CTRL+ALT+DEL 恢复功能 Dim AwY As Integer Dim TurFls As Boolean
AwY = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, TurFls, 0)End Sub
'实际使用时,在 Form 中加入以下程序码:
Private Sub Form_Load()Disable_Ctrl_Alt_Del End Sub
Private Sub Form_Unload(Cancel As Integer)Enable_Ctrl_Alt_Del End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何取得文件大小?
VB6 提供了一个新的物件模型,叫做 FSO(File System Object)物件模型,运用它,我们可以很方便的处理磁盘、资料夹和文件的一些动作。
FSO 物件模型含有好几个物件,其中有一个 File 物件是用来求得文件的相关资讯,在目前这个主题,我们就可以使用 File 物件!它有一个属性是 Size,对文件来说就是指文件的大小(单位为位元组)。(注一)
虽然使用 File 物件的 Size 属性就可以求得文件的大小,但是它有以下二个缺点:
1、只能用于 VB6 以后的版本。
2、它不是 VB6 内定的功能,必须另外引用 Scrrun.dll(Microsoft Scripting Runtime)才可以!
以下的二个方法就可以使用在所有的 VB 版本中(含 VB6),而且是 VB 内定的功能:
1、FileLen 函数:返回一个 Long,代表一个文件的长度,单位是位元组。
语法:FileLen(pathname)' pathname 是全路径之文件名称 适用:取得一个尚未开启的文件的长度大小(注二)
2、LOF 函数:返回一个 Long,单位为位元组,用来代表由 Open 陈述式所开启的文件之大小。
语法:LOF(filenumber)' filenumber 是一个文件代码 适用:取得一个已开启的文件的长度大小
注一:File 物件的 Size 属性除了可以求得一个文件的大小,也可以用来取得整个目录的所有文件大小!
注二:使用 FileLen 函数时,如果所指定的文件正在开启中,则所返回的值是这个文件在开启前的大小。
//////////////////////////////////////////////////////////////////////////////////// 如何移除或更改桌面背景的底色图案(Wallpaper)?
SystemParametersInfo 这个 API 可以设定许多 Windows 系统的功能参数,而其中一个参数就是桌面底图!通常一般的使用者会透过控制面板中的【显示器】来设定桌面底图。
在底下的范例中,我们使用 SPI_SETDESKWALLPAPER 这个参数及图片文件名称来设定新的桌面底图,同时使用 SPIF_SENDWININICHANGE 来通知各个视窗这个改变。
'在表单的声明区中加入以下声明及常数:
Private Declare Function SystemParametersInfo Lib ”user32“ Alias ”SystemParametersInfoA“(ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long)As Long
Const SPI_SETDESKWALLPAPER = 20 Const SPIF_UPDATEINIFILE = &H1 Const SPIF_SENDWININICHANGE = &H2
'在表单上加入一个 CommandButton(Command1)来移除桌面底图,程序码如下:
Private Sub Command1_Click()Dim X As Long X = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, ”(None)“, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)MsgBox ”桌面底图(Wallpaper)已经被移除“ End Sub
'在表单上加入另一个 CommandButton(Command2)来更改桌面底图,程序码如下:
Private Sub Command2_Click()Dim FileName As String Dim X As Long FileName = ”c:windowstest.bmp“ X = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, FileName, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)MsgBox ”桌面底图(Wallpaper)已经被更改“ End Sub
//////////////////////////////////////////////////////////////////////////////////// 一个快速注册 DLL 及 OCX 的方法
有时候我们在 VB 中要引用某一个 DLL 或 OCX 时,会出现文件未注册的讯息,这时,我们可以使用人工注册的方法,也就是直接在命令列中使用 regsvr32.exe 来做,做法如下:
文件注册:C:WindowsSystemRegsvr32.exe C:WindowsSystemTest.ocx 取消注册:C:WindowsSystemRegsvr32.exe /u C:WindowsSystemTest.ocx
这些动作我们也可以直接写到程序中,使用 Shell 来执行,但是我现在要说的,都不是上面提到的方法!
注意看罗!方法如下:
1、在资源管理器中找到 C:WindowsSystemRegsvr32.exe 并【复制】(按鼠标右键选复制)
2、将目录移到 C:WindowsSendTo 后,执行【贴上快捷方式】(按鼠标右键选贴上快捷方式)
3、将快捷方式名称改成【REGISTER】
4、OK
现在,如果您想替某一个文件做注册动作,例如:C:WindowsSystemTest.ocx,您只要打开资源管理器,找到 C:WindowsSystemTest.ocx,按鼠标右键选【传送到】【REGISTER】即可完成注册动作了!
注:有一个地方要注意的是,Regsvr32.exe 只能注册 32 位的文件!如果要用它来注册 16 位的文件,会有错误讯息产生。
//////////////////////////////////////////////////////////////////////////////////// 如何用TextBox打开和保存文件
作为轻量级的控件,TextBox控件使用率很高,但相关的资料极少谈及如何用TextBox控件打开和保存文件,大都采用回避的态度,对VB初学者带来很多不便。笔者近日为友人做一个英文朗读软件,按友人的要求,软件要能象MS的记事本那样能打开和保存文档。其实实现方法并不复杂,现将心得写出来,希望对大家有帮助。如果您有更好的方法,请来信:handanfang@163.net。
'新建标准EXE,加入一个TextBox控件,一个公共对话框,两个菜单。
'打开
Private Sub mnuOpen_Click()CommonDialog1.Filter = ”文档文件(*.txt)|*.txt|所有文件(*.*)|*.*“ CommonDialog1.ShowOpen Open CommonDialog1.FileName For Input As #1 Text1.Text = StrConv(InputB$(LOF(1), 1), vbUnicode)Close #1 End Sub
'保存
Private Sub mnuSave_Click()On Error Resume Next
CommonDialog1.Filter =”文档文件(*.txt)|*.txt|所有文件(*.*)|*.*“ CommonDialog1.ShowSave Open CommonDialog1.FileName For Output As #1 Print #1, Text1.Text Close 1 End Sub
TextBox只支持打开64K以下的文件,建议最好设置出错处理。以上程序在PWin98、VB6.0下调试通过。
//////////////////////////////////////////////////////////////////////////////////// 如何判断目前文件资源管理器中,文件名称之扩展文件名是显示或隐藏?
由于我在集团性的资讯处工作,所负责的公司系统有的是属于外点,例如润泰建设有个单位是行销业务处,他们的工作是卖公司盖的房子,所以他们的业务人员平常都是待在各工地的接待中心,我替他们开发的销售系统在工地的部份是属于单机作业的,使用 Access 资料库,每一个星期资料回传总公司一次。业务人员由于流动性大,不太了解系统,有时候,系统出了问题,业务人员又搞不清楚状况,于是我会要求他们将资料库 sale.mdb 回传公司,结果,常闹笑话,原来他们回传公司的,常常不是 sale.ldb 就是 sale.exe,为什么呢?
原因很简单,因为他们的文件资源管理器中,设定了将扩展文件名隐藏起来,结果只看到三个不同图示的 sale 文件(分别是 Sale.mdb、Sale.ldb、Sale.exe),不太会操作的业务人员根本分不清楚那一个图示的 sale 文件才是资料库文件案!
我们在 VB 的程序中要如何判断,目前文件资源管理器中的设定是否显示扩展文件名呢?
Private Declare Function GetFileTitle Lib ”comdlg32.dll“ Alias ”GetFileTitleA"(ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer)As Integer Private Function HasExtension(sFileName As String)As Long Dim sTemp As String Dim lTemp As Long
sTemp = String(1, 0)lTemp = GetFileTitle(sFileName, sTemp, Len(sTemp))If lTemp < 0 Then HasExtension =-1: Exit Function sTemp = String(lTemp, 0)Call GetFileTitle(sFileName, sTemp, Len(sTemp))
If(Left$(Right$(Left$(sTemp, lTemp网站导航诚邀加盟友情链接-赞助本站 Copyright© 1999-2004 Programfan.com.All Rights Reserved 网站制作&维护:Hannibal Email: yaoz@163.com 网站合作及广告联系:(021)28540908
第四篇:VB课程总结
《VB 程序设计》课程总结
授课时间:2010-2011学年第二学期 授课班级:课程学时:64(32)任课教师:
1.教学情况
能认真备课、遵守学院的教学规章制度,没有迟到、提前下课、误课等教学事故发生。教学过程中,教师之间相互听课,本学期相继听了的课程,感觉受益匪浅,从中学习了很多教学方法;以重点教师说课为形式进行集体备课、建立完善标准化考核题库、期末考试采用上机考试;本学期计算机基础教学部每周都会组织各种科研讲座、教学研讨以及教师轮流讲课45分钟,内容丰富,本学期通过教研活动学了很多其他有经验教师的教学心得和体会,另外找到了一些科研的方向。
32学时共16次理论课的时间想把VB讲的很透彻,对于老师而言还是有一定难度的,因为知识点比较多,还要把全国或江苏省VB等级考试的知识点介绍全面一些;对于学生而言,要在课后自己认真的复习和深入的理解课堂知识,同时还得自学在课堂上没有讲的内容,是需要一个过程的。以往的实验报告都是以纸质稿的作业形式布臵,导致了某些学生只是简单的抄写代码,并不一定真正的去在计算机上设计实现程序;本学期以及上学期一直使用天空教室布臵测试作业、理论知识点的总结以及实验作业的效果较好,学生把实验做好后可以直接提交,教师改作业时也比较直观,可以把程序运行一下,哪些程序代码有问题可以及时用留言的方式提出,学生反应也比较好。天空教室还可以布臵测试作业,类似真正的考试,学生对知识点的掌握也比较深刻。
下面对VB教学中出现的问题做一个总结。VB教学内容主要包括VB中常用控件,VB语言基础,VB基本语句,数组,过程,文件。如果16次课,每一次课都能够讲得透彻深入,学生都能接受,需要认真的备课准备。有几个难点的地方:VB的语言基础:因为涉及到的数据类型、函数内容很多,知识点很散,我的解决方法是在下面教学中经常地使用VB的常用函数,以加深学生对这一部分知识的复习,同时让学生发现VB的常用函数还是满有用;数组:数组是一组具有相同类型的有序变量的集合,集合中的每个变量称为数组元素。文件:文件这部分内容似乎更加的抽象,尽量把这些问题简单化,简洁化,回避一些比较涩的知识点,让学生不会产生厌恶的情绪,至少不讨厌文件的相关操作。
2.学生反馈意见
每学期课程结束时,学校教务网都要求学生对教师课堂教学情况进行评价,学生的反映较好。
3.改进措施及建议
《VB程序设计》是一门实践性很强的课程,在今后的教学中要更加注意理论与实践的结合,把枯燥的理论知识与鲜活的案例结合起来,这就要求教师平时要多注意积累资料。在多媒体课件制作方面,不仅要做到图文并茂,还要做到声文并茂、影文并茂,这一方面要求教师平时要多积累教学资料,另一方面也要求教师要提高计算机应用能力,如Flash等软件的应用。
基础教学部教师:王媛媛
2011年7月1日
第五篇:VB课程设计总结
通过几周对VB的学习,使我增加了对VB课程的了解.
首先了解到VB的特点,VB是在原来的Basic语言基础上发展而来的.Visual指的是可视的图形用户界面开发方法.不需编写大量代码去描述界面元素的外观和位置,只要把预先建立的对象添加到屏幕上的某点即可.如果使用者诸多PAINT之类的绘图程序,则实际上已经掌握了创建用户界面的必要技巧.BASIC指的是B语言,一种在计算机技术发展历史上应用得最为广泛的语言之一.VB在原来BASIC语言的基础上进一步发展至今包含了数百条语句,函数及关键词,其中很多和WINDOWS GUI有直接关系,VB不仅是可视语言,而且是面向对象的编程语言.其特点是概念多,实践性强,涉及面广.之后,了解到一些基本的概念,含义.例如类,就是创建对象实例的模板包含了创建的属性描述和行为特征的定义.而此中的对象又是类的一个实例,继承了类的属性,方法,而VB中长用的对象有窗体,控件等.但我们在建立之前必须清楚对象的三要素:属性,方法和事件.而建立程序的步骤大致可分为:(1)启动程序,装载和显示窗体.(2)窗体等待事件的发生.(3)事件发生时,执行对应的事件发生过程.(4)再重复(2)(3)的过程(5)最后直接遇到“END”结束语句结束程序的运行或按“结束”强行停止程序的运行.再用VB创建一个应用程序,第一步骤是创建窗体,它是用户与应用程序进行交互操作的可视部分,窗体是创建界面的基本构造模块,也是创建应用程序所使用的对象.而后必要设置窗体的属性,从而构出窗体的外观,设置好的窗体,窗体就作为对象,能够对其定义的事件作出响应,这也是所谓的窗体事件,而窗体事件又包括窗体本身事件,键盘事件和鼠标事件.在了解窗体基本知识就还应了解VB的语言基础,其中包括了代码模块(窗体模块,标准模块,类模块),注释,分行和续行,数据类节(字节型,逻辑型,数值型,日期型),变量与常数,运算符与表达式,数组,控制结构,子过程和函数.同时,为了编程,我们还应培养良好的编程习惯,首先是对象,变量及过程的命名约定,然结构化编码约定.在VB中创建应用程序之际也就是和对象打交道之时,对象是代码和数据的组合,可以作为一个单位来处理,对象可以是应用程序的一部分,比如可以是控件,窗体,或数据访问对象.控件也是对象中的一种,主要用来获取用户的输入信息和显示输出信息.应用程序中可用的控件包括文本框,命令按扭和列表框.而通过另外一些控件可以访问其他应用程序并处理数据.VB程序设计同时可设计出一个更好的菜单系统,这样就可以使用户了解到更大量有关应用程序设计和结构的信息,精心规划菜单与工具栏有助于提高应用程序的可用性.同时在基于WINDOWS的应用程序中,对话框被用来提示应用程序继续运行所需的数据或者用户显示信息.对话框是一种特殊类型的窗体对象,在VB中按对话框的创建有三种类型的对话框,他们是预定义对话框,自定义对话框和标准对话框.对于自定义对话框和标准对话框,使可以完成与用户之间的交互.学习VB程序设计后,增加对此的认识,深入学习VB程序就可掌握新的软件,新的编程环境,学习此课程,也可学会使用开发环境,开发工具的方法.才能更好地跟上计算机学科的发展.