当前位置:文档之家› 利用VB控件操作目录和文件夹

利用VB控件操作目录和文件夹

利用VB控件操作目录和文件夹
利用VB控件操作目录和文件夹

利用VB控件操作目录和文件夹

新客网 https://www.doczj.com/doc/9c18407641.html, 时间:2007-01-31 10:00:24 评论:

(一)察看和显示目录下的文件和文件夹

对于这个实现,其实很简单。首先想到的就是VB中给我们提供的现成的控件。主要有这么两类:

一类是驱动器列表框(DriveListBox)、目录列表框(DirListBox)和文件列表框(F ileListBox)三个控件组合而成的自定义对话框;

另一类是windows提供的标准对话框。

他们在工具箱中的位置和图标如下所示:

1、驱动器列表框是一个下拉式的列表框,他和一般下拉式的列表框的不同仅在于功能上的不同,它提供了一个驱动器的列表。当单击右边的箭头时,则弹出计算机中的所有驱动器的下拉列表。默认状态下,在驱动器列表中显示的是当前驱动器,我们可以输入或从下拉列表中选择有效的驱动器标示符。

下面是它的主要属性,事件和方法.

属性Drive本属性用于返回或设置运行时选择的驱动器.默认值为当前驱动器

改变Drive属性会触发Change事件.

示例: Drive1.Drive = “c:”

设置C盘为当前驱动器.

事件Change当选择一个新驱动器或通过代码改变了Drive属性时触发该事件

下面是示例代码:

Private Sub Drive1_Change()

Dir1.Path = Drive1.Drive

‘当选择一个新驱动器时,将驱动器列表中选中的当前驱动器,赋给目录列表的路径.

End Sub

2、目录列表框

目录列表框用于显示当前驱动器的目录结构,目录列表框从最高层目录开始,显示当前驱动器的目录结构,并按层次关系缩进跟目录下的所有子目录。下面是它的主要属性,方法和事件:

属性Path本属性用于返回或设置运行时选择的路径,默认路径为当前路径.改变Dri 属性会触发Change事件.

示例: Dri1.Path = Drive1.Drive

设置在驱动器列表框中选中的驱动器盘符为目录列表的当前路径.

ListIndex本属性用来返回或设置控件中当前被选择的项目索引号.目录列表框中的每一个目录都可以通过ListIndex属性来标识.由Path属性所设置的当前目录的ListIndex 属性值总是-1,而它上面的目录的ListIndex属性值为-2,再上面的为-3,以此类推;而它所包含的子目录恰恰相反,紧挨着的第一个子目录的ListIndex属性值为0,往下一次加一.

ListCount本属性返回当前目录下的所有子目录书.ListCount的值比最大的ListIndex 的值大1.

事件Change当选择一个新目录或通过代码改变了Path属性时触发该事件

下面是示例代码:

Private Sub Dir1_Change()

'将文件列表框的路径值,设置为目录列表框所选中的路径值

File1.Path = Dir1.Path

End Sub

3、文件列表框

文件列表框用来显示当前目录中的部分或者全部文件.文件列表框的大部分属性和一般的列表框相同,都具有大小,位置,字体,颜色等以及List,ListCount,ListIndex等属性.下面是主要的属性:

属性Path本属性用于返回或设置运行时选择的路径以显示其下的文件,默认路径为当前路径.改变Dri属性会触发PathChange事件.

示例: File1.Path= Dri1.Path

设置在目录列表框中选中的路径为文件列表的当前路径.

Pattern本属性用来确定程序运行时,列表框中显示那些类型的文件.除了使用”*””?”等通配符外,在参数中还可以使用分号”;”来分割多种文件类型.例如:”*.ext;*.bat”

FileName本属性返回或设置所选文件的路径和文件名.可以从本属性值中返回当前列

表中选择的文件名.路径可用Path属性单独检索.在功能上,本属性值与ListIndex等价.如果没有文件被选中,FileName属性将返回0长度的字符串.改变甭属性值可能会产生一个或多个如下事件:PathChange(如果改变路径),PatternChange(如果改变模式),DblClick(如果指定存在的文件)

事件Click当选择一个新的文件时触发该事件

下面是示例代码:

Private Sub File1_Click()

Picture1.Picture = LoadPicture(Dir1.Path & " " & File1.FileName)

‘在图片框中显示选定的图形文件.

End Sub

4、标准对话框

CommonDialog控件提供了一组标准的操作对话框,进行诸如打开,和保存文件,设置打印选项,以及选择颜色和字体等操作.通过运行windows帮助引擎还能显示帮助.

CommonDialog控件在visual basic和Microsoft Windows动态链接库commdlg.dll的例程之间提供了一个接口.为了用这个控件创建一个对话框,commdlg.dll必须存在于micro soft Windows的system目录下.然后再visual basic中选择工程/部件,并在显示的部件对话框中选中Microsoft common Dialog Control 6.0,确定后,在工具栏里就显示了出来.

如下图所示:

在应用程序中要使用CommonDialog控件,可将其添加到窗体中并设置其属性.控件所显示的对话框有控件的方法确定.在运行时,当相应的方法被调用时,将显示一个对话框或是执行帮助引擎;在设计时,CommonDialog 控件是以图标的形式显示在窗体中的.该图标的大小不能改变.

使用指定的方法,CommonDialog控件能够显示下列对话框:

方法所显示的对话框

ShowOpen显示[打开]对话框

ShowSave显示[另存为]对话框

ShowColor显示[颜色]对话框

ShowFont显示[字体]对话框

ShowPrinter显示[打印]或[打印选项]对话框

Showhelp显示windows帮助引擎

下面是它的主要属性,方法:

属性Filer该属性应用于CommonDialog控件中的[打开][另存为]对话框.本属性用来返回或设置在对话框[类型]列表框中显示的过滤器.过滤的作用是确定对话框中文件列表框中

显示的文件类型.例如:设置为*.txt时,将显示文本文件.要显示多种类型的文件,可以用管道(|)符号(ASCII124)将他们分开.管道符号前后不能加空格.如:*.rm|*.rmvb Action该属性返回或设置一个表示所显示对话框类型的整数.具体如下.

设置数值说明

0没有操作

1显示[打开]对话框

2显示[另存为]对话框

3显示[颜色]对话框

4显示[字体]对话框

5显示[打印]或[打印选项]对话框

6运行WINHLP32.EXE

FileName本属性应用于CommonDialog控件的[打开][另存为]对话框.

本属性返回或设置所选文件的路径和文件名.如果在运行时被创建,FileName属性将返回0长度的字符串,表示当前没有选择文件.在CommonDialog控件里,可以在打开对话框之前设置FileName属性来设定初始文件名.

可以从本属性值中返回当前列表中选择的文件名.路径可用Path属性单独检索.在功能上,本属性值与ListIndex等价.如果没有文件被选中,FileName属性将返回0长度的字符串.

改变甭属性值可能会产生一个或多个如下事件:PathChange(如果改变路径),PatternCh ange(如果改变模式),DblClick(如果指定存在的文件)

事件Click当选择一个新的文件时触发该事件

下面是一个例子:

我们在这里要做一个VCD的播放器,下面是界面.

下表是其中所用到的控件及其属性设置:

对象特性设置值

窗体名称Frmvcd

BorderStyle1

CaptionVCD播放器

菜单标题文件

名称Mnufile

标题打开

名称Mnu open

标题播放

名称Mnuplay

标题退出

名称Mnuexit

标题选项

名称Mnuoption

标题连续播放

名称Mnurepeat

标题静音

名称Mnuslient

多媒体控件名称Mmcontrol

Picture控件名称Picture1

通用对话框名称Commondialog1

下面是主要程序代码代码:

Private Sub mnuopen_Click() ’当点击菜单中的打开时执行

'在未选择文件时,文件名为空字符,播放菜单不可用

mnuplay.Enabled =False

CommonDialog1.FileName = ""

'下面语句设置文件过滤方式,可显示扩展名为avi,dat,wav和mid文件

CommonDialog1.Filter = "(*.avi)|*.avi|(*.wave)|*.wav|(vcd *.dat)|*.dat|(mid i *.mid)|*.mid"

'初始化文件过滤方式为*.avi

CommonDialog1.FilterIndex = 1

'建立打开方式的通用对话框,也可使用commondialog1.show open

CommonDialog1.Action = 1

'打开一个文件前先关闭前一次被打开的多媒体设备

https://www.doczj.com/doc/9c18407641.html,mand = "close"

Select CommonDialog1.FilterIndex

Case 1 '选择*.avi

'设置多媒体设备类型为avividio

MMControl1.DeviceType = "avividio"

'设置时间格式为帧

MMControl1.TimeFormat = 3

'设置播放的文件为通用对话框中选择的文件MMControl1.FileName = CommonDialog1.FileName '打开文件

https://www.doczj.com/doc/9c18407641.html,mand = "open "

Case 2 '选择*.wav

'设置多媒体设备类型为waveaudio

MMControl1.DeviceType = "waveaudio"

'设置时间格式为帧

MMControl1.TimeFormat = 3

'设置播放的文件为通用对话框中选择的文件MMControl1.FileName = CommonDialog1.FileName '打开文件

https://www.doczj.com/doc/9c18407641.html,mand = "open"

Case 3 '选择*.dat

'设置多媒体设备类型为Mpegvidio

MMControl1.DeviceType = "Mpegvidio"

'设置时间格式为帧

MMControl1.TimeFormat = 3

'设置播放的文件为通用对话框中选择的文件MMControl1.FileName = CommonDialog1.FileName '打开文件

https://www.doczj.com/doc/9c18407641.html,mand = "open "

Case 4 '选择*.mid

'设置多媒体设备类型为waveaudio

MMControl1.DeviceType = "waveaudio"

'设置时间格式为帧

MMControl1.TimeFormat = 3

'设置播放的文件为通用对话框中选择的文件MMControl1.FileName = CommonDialog1.FileName '打开文件

https://www.doczj.com/doc/9c18407641.html,mand = "open"

End Select

'设置hwnddisplay的值,使媒体文件能够在picture控件中播放

MMControl1.hWndDisplay = Picture1.hWnd

End Sub

(二)新建、修改、删除目录

以上控件除了通用对话框(CommonDialog)之外一般只能显示当前的目录结构,对于在磁盘上新建、修改、删除目录却基本无能为力。

我们先来看看通用对话框对文件夹的新建,修改和删除操作.

1、新建目录

我们只要在显示出来的通用对话框的空白位置,单击鼠标,选择“新建”即可在指定的路径下创建新的目录,或者点击通用对话框右上角的新建图表(如下图所示),也可以在指定的路径下创建新的目录

2、修改文件夹名称

可以在显示出来的通用对话框中,用鼠标右键点击选择所要修改的文件夹,再弹出的快捷菜单中,选择重命名,即可修改目录名称。如下图所示:

3、删除文件夹

同修改文件夹名称一样,我们只要选择删除即可。如上图所示。

而且这种方法比RmDir更简便,它还可以删除包含有文件和子文件夹的文件夹。

除了以上控件,windows还给我们提供了一个叫做FileSystemObject(简称FSO)对象。FSO对象模型中包括了计算机文件系统所有的对象。见下表。利用这些对象可以更方便的操作文件系统。

对象功能

Drive允许收集系统的驱动器信息,诸如驱动器的可用空间

Folder允许创建、删除或移动文件夹,并向系统查询文件夹的名称、路径等等

Files允许创建、删除或移动文件,并向系统查询文件的名称、路径等等

FileSysterObject此为主要对象,提供一整套用于创建、删除、搜集相关信息,以及通常的操作驱动器,文件夹,和文件的方法。

TextStream允许读写文本文件

下面我们一起来看看怎样用FSO对象来显示、新建、修改以及删除目录。

FSO对象模型包含在Scripting的类型库中,此类型库存在于Scrrun.dll文件中.使用FSO对象模型,首先要建立一个FileSystemObject对象。有两种方法可以实现。一种是从”工程”菜单中的”引用”对话框选择”Microsoft Scripting Runtime”项,然后在代码窗口中声明一个FileSystemObject类型的变量.语句如下:

Dim fso As New FileSystemObject

另一种方法是在代码中使用CreatObject方法动态的创建一个FileSystemObject对象.语句如下:

Dim fso As Object ‘声明对象变量

Set fso = CreatObject(“Scripting. FileSystemObject”) ‘创建FSO对象

我们具体看看FileSystemObject的主要属性.

1、驱动器

(1) Drives属性是FileSystemObject对象的唯一属性,它返回Drives集合中所有可用驱动器的只读集合。对于可删除的驱动器,不需要将媒体插入其中,就可以在Drives集合中显示出来。下面是它的主要属性有两个:一个是Count,另一个是Item.Count属性返回D rives集合或Dictionary对象中的条目数.Item属性用来返回或设置Drives集合或Dictio nary对象中与指定关键字相关的项目.

下面代码说明了如何获得Drives集合,以及如何用For Eacn……Next语句来访问该集合中的每个Drive:

Sub ShowDriveList()

Dim fs As Object, d, dc, s,n

创建文件系统对象

Set fs = CreatObject(“Scripting. FileSystemObject”)

创建驱动器集合

Set dc= fs.Drives

'取的驱动器对象

For Each d in dc

s = s & d.DriveLetter & “-”‘格式化文本

If d.DriverType = Remote Then ‘如果是Remote类型的驱动器

n = d.ShareName ‘取得它的共享名

Else

n = d.volumeName ‘否则取得它的卷标

End if

s= s& n & vbCrLf ‘格式化文本

Next

MsgBox s ‘显示文本

End sub

(2) 当然我们也可以用Drive对象.Drive对象提供了对磁盘驱动器或网络共享属性的访问方法.下面是它的主要属性及其解释:

Availablespace驱动器已用空间DriveLetter驱动器指定的字母

Freespace驱动器剩余空间DriverType驱动器类型

TotalSize驱动器全部空间FileSystem驱动器文件系统

IsReady驱动器是否已准备Path驱动器根目录

SerizlNumber驱动器序列号VolumeName驱动器卷标

ShareName驱动器共享名

主要的方法就是GetDrive,此方法用来访问一个已有的驱动器,该方法返回一个与指定路径中的驱动器相对应的Drive对象。下面的代码中,我们将说明怎样取得一个指定的驱动器的相关信息:

Sub ShowFreeSpace(drvPath) ‘显示指定目录下的驱动器的信息

Dim fs As Object, d, s

Set fs = CreateObject("Scripting.FileSystemObject") ‘创建文件系统对象

Set d = fs.GetDrive(fs.GetDriveName(drvPath)) ‘创建并得到指定取目录下的驱动器

s = "Drive" & UCase(drvPath) & "-" ‘格式化文本

s = s & d.VolumeName & vbCrLf ‘得到驱动器的卷标

s = s & "FreeSpace:" & FormatNumber(d.FreeSpace / 1024, 0)

'计算驱动器的剩余磁盘空间

s = s & "Kbytes"

MsgBox s ‘显示

End Sub

下面是filesystemobject的其他方法

CreateFolder该方法的作用是创建一个文件夹。所要创建的文件夹必须是不存在的,否则出错。

CreateTextFile该方法的作用是产生一个指定的文件名,并返回一个TextStream对象,该对象可被用于对指定的文件进行读写。如果overwrite参数为False或未指定,对于一个已存在的文件,将产生错误。

DeleteFile该方法的作用是删除一个指定的文件。如果指定的文件不存在,则出错。

DeleteFolder该方法的作用是删除一个文件夹及其内容。如果没有发现匹配的文件夹则出错。该方法不能确定文件夹中是否包含内容。

DriveExists该方法的作用是用来确定驱动器是否存在。如果指定的驱动器存在,则返回True,否则返回False。但对于可删除介质的驱动器,即使没有介质存在,DriveExists 方法也返回True,因此最好使用IsReady属性确定驱动器是否准备就绪。

FileExists该方法的作用是判断指定的文件对象是否存在于当前文件夹

FolderExists该方法的作用是判断指定的文件夹对象是否存在于当前文件夹

GetDrive该方法的作用是返回一个在指定路径中的与某个驱动器相对应的Drive对象。对于网络驱动器,将首先检查该共享是否存在。

GerDriveName该方法的作用是返回包括某一指定路径上的驱动器名的字符串。如果驱动器不能确定,则返回一个0长度字符串。该方法只对指定的路径起作用,它并不试图解析路径,也不检查指定路径是否存在。

GetExtensionName该方法的作用是返回指定路径中最后一个组成部分的扩展名。

GetFile该方法的作用是返回指定路径中与某一文件相关的File对象。一定要保证所指定的文件是实际存在的。否则将产生错误。

GetFileName该方法的作用是返回指定路径的最后一个组成部分的文件名。

GetFolder该方法的作用是返回指定路径上的与某个文件夹相关的Folder对象.要保证指定的文件夹是实际存在的,否则会出错. 使用Folder对象的第一部就是先用FileSystemO bjectd的GetFolder方法得到Folder对象

GetParentFolderName该方法的作用是返回一个包含指定路径上的最后一个组成部分

的父文件夹的名称。

MoveFile该方法的作用是将一个或多个文件从一个地方移动到另一个地方。

MoveFolder该方法的作用是移动一个或多个文件夹,如果源路径包含通配符,或目的路径以斜杠()为结束,则表明目的路径为已存在的路径,在此文件夹中移动相匹配的文件夹.否则,认为目的路径是一个要创建的目标文件夹的名字.如果目的路径为一个已存在的文件或目的路径为一个目录,则出错.如果没有任何文件与源路径中的通配符相匹配也出错.

OpenTextFile该方法可用来打开一个指定的文件,并返回一个TextStream对象。用于读文件或追加文件。

2、文件夹

对文件夹的操作,我们可以使用folder对象,它提供了对文件夹所有属性和方法的访问.下表市对其主要属性的解释:

DateCreated返回指定文件或文件夹的创建日期和时间

DateLastAccessed返回最后一次访问指定文件或文件夹的日期和时间

Drive返回指定文件或文件夹所在的驱动器符号

Files返回由File对象组成的所有Files集合,这些Files集合包含在指定的文件夹中,包括设置了隐藏和系统文件属性的那些文件夹

IsRootFolder如果指定的文件夹是根文件夹,则返回True,否则返回False

Name设置或返回指定文件或文件夹的名称

ParentFolder返回指定文件或文件夹的父文件夹的Folder对象

Path返回指定文件、文件夹或驱动器的路径

ShortName返回较早的需要8.3文件命名约定的程序所使用的短文件名

ShortPath返回较早的需要8.3文件命名约定的程序所使用的短路径

Size对文件来说,本属性返回以字节为单位的文件大小;对文件夹来说,返回以字节为单位包括其中所有文件或子文件夹的大小

SubFolders返回包含所有文件夹的一个Folders集合,这些文件夹包含在某个特定文件夹中, 包括设置了隐藏和系统文件属性的那些文件夹

Type返回指定文件或文件夹的类型信息.

使用Folder对象的第一部就是先用FileSystemObjectd的GetFolder方法得到Folder 对象, 该方法的作用是返回指定路径上的与某个文件夹相关的Folder对象.要保证指定的文件夹是实际存在的,否则会出错.

让我们来看一看其中的各种属性及其用法吧.

(1)Attributes属性可以返回文件或文件夹的属性,或者设置他们的新属性.所设属性可以是以下值中任意一个或多个的逻辑组合.

常数值说明

Normal0为一般文件,不设置属性

ReadOnly1为只读文件,属性为读/写

Hidden2为隐藏文件,属性为读/写

System 4为系统文件,属性为读/写

Volume8为磁盘驱动器卷标,属性为只读

Directory16为文件夹或目录,属性为只读

Archive32在上次备份后已经改变的文件,属性为读/写

Alias64为链接或快捷方式,属性为只读

Compressed128为压缩文件,属性为只读

(2)DateCreated属性返回指定文件或文件夹的创建日期和时间,本属性为只读属性.

下面是用法:

Sub ShowFolderList( folderspec ) ‘folderspec 为文件夹名称

Dim fs , f, f1,fc , s

Set fs = CreateObject(“Scripting.FileSystemObject”)

Set f = fs.GetFolder(folderspec) ‘得到folderspec文件夹相关的folder对象Set fc = f.SubFolders ‘得到folder对象所包含的文件夹的folder集合

For Each fi in fc ‘访问folder集合中的每一个folder

s= s & https://www.doczj.com/doc/9c18407641.html, ‘格式化要显示的文本

s= s & vbCrLf

Next

MsgBox s ‘用对话框显示信息

End Sub

(3)DateLastModified属性用来返回最后一次修改指定文件或文件夹的日期和时间,本属性为只读.

下面代码用一个文件举例说明了DataLastModified属性的用法:

Sub ShowFileAccessInfo(filespec)

Dim fs,f,s

Set fs = CreateObject(“Scripting.FileSystemObject”)

Set f = fs.GetFolder(folderspec) ‘得到folderspec文件夹相关的folder对象s= Ucase(filespec) & vbCrLf

s= s& “Created:” & f.DateCreate & vbCrLf

s= s & “Last Accessed :” & f.DateLastAccessed & vbCrLf

s= s & “Last Modifide :” & f.DateLastModified

MsgBox s, 0,”File Access Info”

End Sub

(4)Type属性返回关于某个文件或文件夹类型的信息.例如对于以.TXT结尾的文本文件来说,本属性会返回”Text Document”.下面的代码举例说明了返回某个文件夹类型的Type 属性的用法.在这个示例中,试图将Recycle Bin的路径或其他唯一的文件夹提供给过程.

Sub ShowFileSize( filespec )

Dim fs,f,s

Set fs = CreateObject(“Scripting.FileSystemObject”)

Set f = fs.GetFolder(folderspec) ‘得到folderspec文件夹相关的folder对象

S = Ucase(https://www.doczj.com/doc/9c18407641.html,) & “is a ” & f.Type ‘格式化文本

MsgBox s,o, “File Size Info ”‘显示信息

End Sub

主要方法有:

(1)Copy方法:

该方法的作用是拷贝一个指定的文件或文件夹到指定的目录.该方法和FileSystemObj ect.CopyFile方法的作用相同

(2)CreateTextFile方法:

该方法的作用是产生一个指定的文件名,并返回一个TextStream对象,该对象可被用于对指定的文件进行读写.如果overwrite参数为False或未指定,对于一个已存在的文件,将产生错误.

(3)Delete方法:

该方法的作用是删除一个指定的文件或文件夹.如果指定的文件或文件夹不存在,则发生一个错误.对于一个File或Folder来说,Delete方法的运行的结果和执行FileSystemOb ject.DeleteFile或FileSystemObject.DeleteFolder的结果是一样的.Delete方法执行时与指定的文件夹中时候有内容无关.

(4)Move

该方法用来将一个指定的文件夹或文件从一个地方移动到另一个地方,如果只是想移动一个文件或文件夹,则使用Move方法和使用FileSystemObject.MoveFile或FileSystemObj ect.MoveFolder操作的结果是一样的,但是如果要同时移动多个文件或文件夹,则只能使用后者。

讲了这么多,还是让我们来看一下具体的实现方法:

1、创建一个文件夹

可以使用FileSystemObject对象的CreateFolder方法来实现,但要创建的文件夹必须不存在,否则出错。特别注意,FileSystemObject对象不能创建或删除驱动器。

下面的例子可以在应用程序所在目录下创建一个文件夹

Sub CreateFolder(folderspec)

Dim fs

Set fs = CreatObject(“Scripting.FileSystemObject”)

fs.CreaterFolder(folderspec )

End sub

2、删除一个或多个文件夹

可以使用FileSystemObject对象的Deletfolder方法,或者folder对象的Delete方法

Sub DeleteFolder(folderspec)

Dim fs

Set fs = CreatObject(“Scripting.FileSystemObject”)

fs.DeleteFolder(folderspec & “100”)

‘Set f = fs.GetFolder(folderspec) ‘得到folderspec文件夹相关的folder对象‘f.Delete

End sub

3、移动一个或多个文件夹

可以使用FileSystemObject对象的Movefolder方法,或者folder对象的Move方法

Sub MoveFolder(folderspec)

Dim fs

Set fs = CreatObject(“Scripting.FileSystemObject”)

fs.MoveFolder(folderspec , “c:windows”)

‘Set f = fs.GetFolder(folderspec) ‘得到folderspec文件夹相关的folder对象‘f.Move(“c:windows”)

End sub

4、一个或多个文件夹

可以使用FileSystemObject对象的Copyfolder方法,或者folder对象的Copy方法。

Sub CopyFolder(folderspec)

Dim fs

Set fs = CreatObject(“Scripting.FileSystemObject”)

fs.CopyFolder(folderspec , “c:windows”)

‘Set f = fs.GetFolder(folderspec) ‘得到folderspec文件夹相关的folder对象‘f.Copy(“c:windows”)

End sub

VB .NET中控件数组的实现

https://www.doczj.com/doc/9c18407641.html,中控件数组的实现 摘要:VB编程时,当要处理一组相同类型的控件的同一事件过程时,我们可以引入控件数组这一概念。如进行计算器程序编写时,可创建十个数字按钮的控件数组,共享同一事件过程。VB6升级到https://www.doczj.com/doc/9c18407641.html,后,VB6控件数组的创建方法在.NET中不可用,本文总结了几种https://www.doczj.com/doc/9c18407641.html,中使用控件数组的方法。 关键词:https://www.doczj.com/doc/9c18407641.html,控件数组事件过程程序代码 一、关于控件数组 熟悉VB6编程的,对控件数组这一概念应该非常熟悉,它是VB6中的一项简单而非常实用的技术,是指具有相同名称的同类型的控件,共享同一事件。它的最大好处是:简化编程。但当我们把这一用法沿用到https://www.doczj.com/doc/9c18407641.html,中来时,却发现无法实现。虽然https://www.doczj.com/doc/9c18407641.html,中没有VB6中实现控件数组的方法,但在https://www.doczj.com/doc/9c18407641.html,中控件数组的运用更加灵活了。 https://www.doczj.com/doc/9c18407641.html,中,控件数组的创建不再是在设计时简单地将同类型的各个控件的Name属性值设置成同一名称就可以了,https://www.doczj.com/doc/9c18407641.html,中,不公能够创建同类型的相同事件处理过程,还能够创建属于不同类型但共享相同事件的控件组。 二、https://www.doczj.com/doc/9c18407641.html,中控件数组的实现 要在https://www.doczj.com/doc/9c18407641.html,中实现控件数组这一机制,我们需要通过编写代码来完成,下面来介绍几种的方法,大家可以根据程序的需要进行选择。 1、使用Handles子句。 先将控件数组中各控件对象依次添加到窗体,然后创建其中一个对象的事件过程(执行部分先不写),再把其它对象的这一事件依次添加在后面,各事件过程名之间用逗号分隔开来。在事件过程的执行部分,如果需要引用这些对象,则要先给这些对象创建一个相同的名称。当要引用对象时,不再使用它们的Name属性值,而是新创建的名称。示例代码如下(部分内容省略): Label1_Click(ByVal sender…)Handles Label1.C lick,Label2.Click,Label3.Click Dim lbl As Label = CType(sender, Label) 当中,创建的是Label1的Click事件,在其后面,添加了Label2及Label3的Click 事件。事件过程中,通过一条Dim语句,定义三个标签具有相同的名称lbl,在下面的代码中,要设置或获取其中某一个标签的某个属性值时,直接使用名称lbl即可。这种方法实现起来最方便简单,以上实例中要求控件数组中控件类型相同,通过此方法,也可实现不同类型同一事件处理程序的共享,如具有同一功能的菜单项和工

vb控件数组的习题及答案

vb控件数组的习题及答案

电子教室学生注册时姓名文本框部分请输入:如:1411111111李四学号+姓名,中间不加空格) 实验准备: 请同学们删除d:\ex21 文件夹里面的内容 如果没有ex21文件夹,请在d:\ 下新建 ex21 文件夹 1、打开D:\下的工程文件PROJECTA4.vbp和窗体文件FORMA4.frm,按以 下要求完成程序:在窗体上创建2个列表框、2个标签、2个命令按钮。 List1用于显示可选课程、List2用于显示已选课程。单击“选课”按钮, 将List1中选定的课程名称加入到List2中显示,单击“清空”按钮,将 删除List2中的所有课程。程序运行的参考输出格式如图A-4所示,可选 课程至少包含图A-4所示的6门。最后将工程文件、窗体文件按原文件 名保存在D:\EX21文件夹下。 图A-4

2、打开D:\下的工程文件PROJECTB4.vbp和窗体文件FORMB4.frm,按以下要求完成程序:在窗体上创建1个列表框、1个图片框、2个标签、2个命令按钮。List1用于显示可选课程、Picture1用于显示已选课程。单击“选课”按钮,将List1中选定的课程名称加入到Picture1中显示,单击“清空”按钮,将删除Picture1中的所有课程。程序运行的参考输出格式如图B-4所示,可选课程至少包含图B-4所示的6门。最后将工程文件、窗体文件按原文件名保存在D:\EX21文件夹下。 图B-4

3、打开D:\下的工程文件PROJECTA41.vbp和窗体文件FORMA41.frm,按以下要求完成程序:单击窗体,能产生10个两位的随机整数并存放在一维数组中,并能在窗体中输出该10个随机整数、最大数及其在10个数中的位置,要求使用语句强制显式声明模块中的所有变量,程序运行的参考输出格式如图A-41所示。最后将工程文件、窗体文件按原文件名保存在D:\EX21文件夹下。 图A-41

VB读写ini文件

VB读写ini文件(1) 2007-06-20 11:32 自从注册表诞生以来ini文件正在逐渐失去其市场占有率,然而基于ini文件的独立性,致使其还没有到达退出历史舞台的地步,很多应用程序的初始化和一些界面参数的设置仍然很愿意从ini文件中读取,为了保证操作需用参数对ini文件的读取的通明性,建议使用一个模块来完成此工作。注:所有操作调用标准的Win API函数来完成。 Dim Ret As Long Dim Start As Long Public FileName As String Const BufSize = 10240 Dim buf As String * BufSize Private Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long Private 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 Public Sub SetValue(ByVal clsName As String, ByVal key As String, ByVal V As String) Ret = WritePrivateProfileString(clsName, key, V, FileName) End Sub Public Function GetValue(ByVal clsName As String, ByVal key As String) As String Ret = GetPrivateProfileString(clsName, key, "", buf, BufSize, FileName) Start = 1 GetValue = RetStr() End Function Private Function RetStr() As String Dim i As Long i = InStr(Start, buf, Chr(0)) If i > Start Then RetStr = Mid(buf, Start, i - Start) End If Start = i + 1 End Function 至此已经完成了对一个完整的独立模块的封装,接下来就来看看怎么引用(其实看完上面程序就明了了) VB读写INI文件(2) 2007-06-20 11:32 INI 文件是什么样子?——不会吧,这都不知道。INI 文件就是 Windows 中常见的以 .ini 为扩展名的文件,其内部格式和各部分的名称如下: [Section1] Key1=Value1

VB获得Windows各类系统目录的方法

VB获得Windows各类系统目录的方法 现在有很多关于如何用VB获得Windows目录的文章,但大都只讲到如何获得Windows目录和System目录,有时候我们却需要获得像"我的文档"这样的目录("我的文档"的路径并不是固定的,可以由自己设定,也有可能因为系统的安装路径不同而不同),那又该如何处理呢?下面我们来具体谈谈如何用VB获得这种路径。 先向大家介绍两个API函数,这两个函数分别是SHGetSpecialFolderLocation和SHGetPathFromIDList,这就是我们用来获得各种路径的武器。 函数声明: Private Declare Function SHGetSpecialFolderLocation Lib "Shell32" (ByVal hwndOwner As Long, ByVal nFolder As Integer, ppidl As Long) As Long Private Declare Function SHGetPathFromIDList Lib "Shell32" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal szPath As String) As Long 函数功能及参数说明: SHGetSpecialFolderLocation:获得某个特殊目录在特殊目录列表中的位置;它有三个参数,第一个参数是用来指定所有者窗口的,在应用中一般我们写上"0"就可以了;第二个参数是一个整数id,它决定要查找的目录是哪一个目录,它的取值可能如下: &H0& '桌面 &H2& '程序集 &H5& '我的文档 &H6& '收藏夹 &H7& '启动 &H8& '最近打开的文件 &H9& '发送 &HB& '开始菜单 &H13& '网上邻居 &H14& '字体 &H15& 'ShellNew &H1A& 'Application Data &H1B& 'PrintHood &H20& '网页临时文件 &H21& 'Cookies目录 &H22& '历史 第三个参数是获得的特殊目录在特殊目录列表中的地址。 SHGetPathFromIDList:根据某特殊目录在特殊目录列表中的地址获取该目录的准确路径。它有两个参数,第一个参数是特殊目录在特殊目录列表中的地址,也即上一个函数所获得的地址;第二个参数是一个字符串型数据,用来保存返回的特殊目录的准确路径。 比如:为了获得DeskTop的路径,首先需调用SHGetSpecialFolderLocation获得DeskTop在特殊目录列表中的位置Pid,然后调用SHGetPathFromIDList函数获得Pid指向的列表内容,即DeskTop的准确路径。 下面是我编写的一个用来获取Windows各种目录路径的例子,供大家参考。如果您有什么问题或建议,欢迎给我来信(xuhaoliang@https://www.doczj.com/doc/9c18407641.html,)。

【精选资料】VB控件 数组 过程复习题 参考答案2

常用标准控件作业 一、选择题 1.下列关于属性设置的叙述错误的是_______B__。 A.一个控件具有什么属性是Visual Basic预先设计好的,用户不能改变它 B.一个控件具有什么属性值是Visual Basic预先设计好的,用户不能改变它 C.一个控件的属性既可以在属性窗口中设置,也可以用程序代码设置 D.一个控件的属性在属性窗口中设置后,还可以再利用程序代码为其设置新值 2.以下过程是标签Label1的___A______事件。 Prviate Sub Label1_Click( ) End Sub A.单击 B.双击 C.拖拽 D.移动 3.下列控件中可设置滚动条是____C_____。 A.检查框(复选框) B.框架 C.文本框 D.标签框 4.标签所显示的内容,由___C______属性值决定。 A. Text B. Name C. Caption D. Alignment 5.定时器的定时间隔单位是__C_______。 A. 秒 B. 微秒 C. 毫秒 D. 分 6.检查框(复选框)的控件名称为______B___。 A. OptionBotton B. CheckBox C. PictureBox D. Image 7.若要求向文本框输入密码时,只在文本框中显示&号,则应当在此文本框的属性窗口中设置______D___。 A. Text属性值为& B. Caption属性值为& C. PasswordChar属性值为空 D. PasswordChar属性值为& 8.若要设置定时器的定时间隔,可通过__A_______属性来设置。 A. Interval B. Value C. Enabled D. Text 9.若要设置定时器的定时间隔设为5秒,应将Interval属性值设为_D________。 A. 5 B. 50 C. 500 D. 5000 10.若要使不可见命令按钮显示出来,可通过设置_____A____属性的值为True来实现。 A.Visible B.Enabled C.Default D.Value 11.若要使定时器起作用,应将其__D_______属性设置值设为True。 A.Interval B.Value C.Text D.Enabled 12.若要使命令按钮失效,可设置_____B____属性为False来实现。 A.Value B.Enabled C.Visible D.Cancel 13.若要向列表框新增列表项,可使用_____D____方法来实现。 A.Add B.RemoveItem C.Clear D.AddItem 14.要获得垂直滚动条Vscrollbar控件所能表示的最大值,可通过调用该控件的_____B____属性来实现。 A.Value B.Max C.Min https://www.doczj.com/doc/9c18407641.html,rgeChange 15.要将命令按钮上的文字设置为“粗体”可通过设置__B_______属性值为True来实现。 A.FontItalic B.FontBold C.FontUnderline D.FontSize 16.要将命令按钮上的文字设置为“斜体”可通过设置____A_____属性值为True来实现。 A.FontItalic B.FontBold C.FontUnderline D.FontSize 17.要将命令按钮上的字体设为“隶书”,可设置______C___的属性为“隶书”。 A.FontBold B.BackItalic C.FontName D.FontSize 18.以下选项中,不属于单选按钮属性的是____D_____ A.Enabled B.Caption https://www.doczj.com/doc/9c18407641.html, D.Min 19.组合框的风格可通过____C_____属性来设置。 A.BackStyle B.BorderStyle C.Style D.Sorted 20.标签的边框由_____C____属性的设置来决定。 A.BackColor B.BackStyle C.BorderStyle D.AutoSize 21.单选按钮的控件名称为____D_____。 A.Botton B.CheckBox C.PictureBox D.OptionBotton 22.单选按钮的当前状态可通过___A______属性来访问。 A.Value B.Checked C.Selected D.Caption 23.当滚动条中的滑块位置变化时,将触发其___C______事件。 A.LostFocus B.SetFocus C.Change D.GetFocus 24.假定Picture1和Form1分别为图片框和窗体的名称,以下语句___A______可清除图片框中的文本信息。 A.Picture1.cls B.Picture1.clear C.Form1.cls D.Form1.clear 25.确定一个窗体或控件的大小的属性是_____B____。 A.Width或Height B.Width和Height C.Top或Left D.Top和Left

vb读取txt文件到textbox

vb读取txt文件到textbox vb读取txt文件到textbox 1.怎么通过代码创建一个文本文件,并读取,更新内容 以上为随即方式打开的文本文件 dim gfilenum as integer gfilenum = FreeFile Open "文件路径及文件名" For Random As gfilenum len=3 \'以随即方式打开一文件如果文件不存在就新建 用get #gfilenum ,记录在文件中位置,要放取得的数据的变量\'读取操作 用put #gfilenum ,记录在文件中位置,要放着要写入数据的变量\'写操作 close #filenum\'关闭文件 以下为顺序方式打开的文件 dim gfilenum as integer gfilenum = FreeFile Open "文件路径及文件名" For output As gfilenum \'以写入方式打开文本 print #gfilenum,要写入的文本 write #filenumber,要写入的文本 dim gfilenum as integer gfilenum = FreeFile Open "文件路径及文件名" For input As gfilenum \'以读出方式打开文本 input #gfilenum ,用来放读取的内容的内存变量名 还可用line input#,input()等读取更详细的查msdn 2.VB读取文本文件时,调用TextStream 对象中使用OpenTextFile报错了。 如果是 Set f = fs.OpenTextFile("E:\\table\\trace.txt", forreading, True, TristateUseDefault)

vb对文件目录的操作

原文地址:vb2008 文件目录相关作者:esonbest 以下摘自《vb2008开发经验与实战宝典》源码位置c01 '将指定URI数据下载到本地文件Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim MyUri As String = "https://www.doczj.com/doc/9c18407641.html,/mspress/images/banner.gif" Dim MyFileName As String = "banner.gif" Dim MyClient As New https://www.doczj.com/doc/9c18407641.html,.WebClient() MyClient.DownloadFile(MyUri, MyFileName) System.Diagnostics.Process.Start(MyFileName) End Sub Public Class Form1 '判断指定目录是否已经存在 System.IO.Directory.Exists(MyDir1) '获取指定目录的上级目录 Dim MyParentDir = System.IO.Directory.GetParent(MyDir).FullName '获取全路径名的目录信息 Dim MyDirectoryName = System.IO.Path.GetDirectoryName(MyPathName) '获取全路径名的根目录信息 Dim MyPathName = "C:WindowsNotepad.exe" Dim MyRootDirectoryName = System.IO.Path.GetPathRoot(MyPathName) '获取当前工作目录 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

VB_NET语言操作txt文件代码

做二次开发过程中的一些代码搜集和个人的试错及注释: Dim str_File_1 As String = https://www.doczj.com/doc/9c18407641.html,puter.FileSystem.ReadAllText("E:\Visual Studio\Visual Basic\GUI\WindowsApplication2\Resources\1.tcl", System.Text.Encoding.ASCII) '根据实际的编码读第一个文件 Dim str_File_2 As String = https://www.doczj.com/doc/9c18407641.html,puter.FileSystem.ReadAllText("E:\Visual Studio\Visual Basic\GUI\WindowsApplication2\Resources\2.tcl", System.Text.Encoding.ASCII) '根据实际的编码读第二个文件 FileOpen(1, "E:\Visual Studio\Visual Basic\GUI\WindowsApplication2\Resources\1.tcl", OpenMode.Input, OpenAccess.Default, OpenShare.Shared) '以读方式打开文件 FileOpen(2, "E:\Visual Studio\Visual Basic\GUI\WindowsApplication2\Resources\2.tcl", OpenMode.Output, OpenAccess.Default, OpenShare.Shared) '以写方式打开文件 Print(2, str_File_1) '将1文件写入2中 FileClose(1) FileClose(2) Imports System.IO Public Class TXTClass '为了能够操作txt文本文档,需要在类的前面加入“System.IO”空间的引用; '然后定义3个变量sw(用于write操作,变量类型StreamWriter)、 'sr(用于read操作,变量类型StreamReader)、 'strRead()(用于保存从文本文档中读入的数据,变量类型String数组); '然后写一个空的sub New()过程(类必须有的)。 Private swAsStreamWriter Private srAsStreamReader Public strRead() As String Public Sub New() End Sub '写操作 '写入一行数据到文本文件 '以追加的形式写入一行数据 Public Sub ZhuiJiaSingle(ByValParth As String, ByValstrline As String) sw = New StreamWriter(Parth, True, System.Text.Encoding.Default) sw.WriteLine(strline) sw.Flush() sw.Close() sw = Nothing

(环境管理)实验VB编程环境和文件

实验1 环境和文件 实验目的: 1.熟悉VB的集成开发环境 2.掌握常用控件的属性、方法 3.熟悉常用对象事件的使用 4.熟悉文件系统控件的使用 5.掌握文件的打开、关闭和读写操作 实验1.1认识Visual Basic 实验任务: 认识Visual Basic的集成开发环境,熟悉各个窗口的功能,熟悉控件的属性、方法,熟悉事件的使用。实验结果界面如图1-1所示。 图 1-1 实验1.1运行界面 实验步骤: 1.启动VB6.0,创建一个“标准EXE”类型的应用程序。 2.将窗体的Font属性设为宋体、小二、粗体,Caption属性设置为“我的第一个程序”。 3.在窗体上添加两个命令按钮Command1(Caption属性设置为“欢迎”)和Command2(Caption属性设置为“再见”) 。 4.双击“欢迎”按钮,涉及如下代码: Print “欢迎使用Visual Basic” 5.双击“再见”按钮,添加如下代码: End 6.将窗体和工程分别以文件名vb1.frm和vb1.vbp保存在自己的文件夹中。 7.单击F5,试验运行本程序,直至满意为止。

说明:这里,“自己的文件夹”指任意磁盘获U盘如D盘根目录下以自己的名字和学号命名的子目录(例如姓名为“赵阳”,学号为09080126;则自己的文件夹就是“D:\赵阳09080126”),以后所有的实验若无特殊说明均保存在该目录下。 思考:除了上述方法,还可以怎样实现上述题目要求?试一试。 实验1.2 对象移动动画 实验任务: 熟悉Move方法实现对象移动,进一步熟悉控件事件的使用。实验结果界面如图1-2所示。 图1-2 实验1.2运行界面 实验步骤: 1.将窗体的Caption属性设为“欢迎新同学”;为窗体设置Picture属性(图片可以从C:\Windows\Web\Wallpaper中取,也可放自己喜欢的照片),设置窗体不可改变大小。 2.在窗体上添加两个标签,Caption属性为“欢迎新同学”,并将其设置为浮雕效果(提示:浮雕效果可以由两个背景风格为透明、前景颜色不同、位置稍有错位

控件数组

在https://www.doczj.com/doc/9c18407641.html,中使用控件数组 控件数组是位于一个窗体上共享同一名称的一组同种类型控件。普通控件仅使用名称就可以识别,而引用控件数组中的成员则需要同时使用名称和索引。开发人员在Visual Basic 6.0 以及更早的版本中使用控件数组主要有以下三个理由: 1. 在循环中访问数组中控件的属性。 2. 向窗体动态添加新控件。 3. 允许一个事件例程与多个控件连接。 控件数组的使用,极大的方便了开发人员。然而,刚刚从Visual Basic6.0(以下简称VB6.0)过渡到Visual https://www.doczj.com/doc/9c18407641.html,(以下简称https://www.doczj.com/doc/9c18407641.html,)的初学者却发现,在https://www.doczj.com/doc/9c18407641.html,中似乎不能使用控件数组了。笔者仔细查阅了https://www.doczj.com/doc/9c18407641.html,的MSDN文档发现,在https://www.doczj.com/doc/9c18407641.html, 中,确实不再支持控件数组。原因是,https://www.doczj.com/doc/9c18407641.html,对事件模型作了很大的改动,引入了另外一种数据类型――控件集合模型,使控件数组没有存在的必要。就像VB6.0 中的控件数组可以共享事件一样,https://www.doczj.com/doc/9c18407641.html, 中的事件模型允许任何事件处理程序都可以处理来自多个控件的事件,这就允许创建属于不同类型但共享相同事件的控件组。 所谓控件集合是指包含在一个容器中的所有控件的总和,能够创建控件集合的容器有:Form、Panel、GropBox等。程序运行时,可以通过访问容器的Control属性来得到该容器中的所有控件。 下面将演示如何通过控件集合来使用控件数组: 一、直接使用Form容器的控件集合来使用控件数组: 建立一个https://www.doczj.com/doc/9c18407641.html,项目,在Form1中添加三个TextBox控件,名称分别为:TextBox1、TextBox2、TextBox3,一个Button控件。 双击Button,输入如下代码: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click …下面的语句是通过数组元素的下标来访问Form中的每一个元素。 Me.Controls.Item(0).Text = "集合中的第一个元素" Me.Controls.Item(1).Text = "集合中的第二个元素" Me.Controls.Item(2).Text = "集合中的第三个元素" Me.Controls.Item(3).Text = "集合中的第四个元素" End Sub 运行项目后,点击Button,看到的结果是:Form1中的所有控件(包括Button自己)的Text属性都被修改了,同时还发现,最后加入的的控件变成了集合中的第一个元素(下标为0)。这个结果说明: Form1中的所有控件已经自动构成了一个控件集合(控件数组),这个特点使得建立控件数组变得非常简单。 在访问这些控件时,除了可以通过控件名称直接访问外,还可以通过Contro.Item(n)属性按下标访问集合中的每一个控件; 集合中控件的类型可以不相同,这点和VB6.0完全不同; 集合中的下标顺序是按照加入控件的顺序倒排的; https://www.doczj.com/doc/9c18407641.html,中控件数组的特点让人稍感不适的是,控件数组的下标是按加入顺序的倒排续产生的,但程序员完全可以改变这个顺序:在代码编辑窗中点击“#Region " Windows 窗体设计器生成的代码”旁边的“+”号,代码展开后,找到如下代码: Me.Controls.Add(Me.Button1) Me.Controls.Add(Me.TextBox3) Me.Controls.Add(Me.TextBox2) Me.Controls.Add(Me.TextBox1)

(完整版)vb连接access数据库及数据读写操作

ACCESS数据库和VB的连接 Edited by Ryan 2013 1、建立Access数据库 2、启动VB,建立标准EXE 图1 3、添加ActiveX控件 鼠标指向任意VB控件,单击右键,选择“部件(O)”,出现图3所示界面 图2

图3 选择部件“Microsoft ADO Data Control 6.0 (OLEDB)”,出现如图4所示控件 图4

4、添加控件Adodc 图5 4、在控件Adodc上添加数据源 鼠标指向控件Adodc1,单击右键,选择“ADODC 属性”,弹出如图7所示界面 图6

图7 单击“生成(U). . .”,弹出如图8所示界面 图8 选择“Microsoft Jet 4.0 OLE DB Provider”,单击“下一步(N) >>”,弹出如图9所示界面

图9 单击“. . .”,添加数据源(第一步所建Access 数据库),如图10所示 图10 单击“测试连接(T)”,出现提示框,如图11所示 图11 之后点击“确定”,退回到如图12所示界面

图12 单击“记录源”,弹出如图13所示界面 图13 在“命令类型”下,选择“1 - adCmdText”,在“命令文本(SQL)”下,输入“Select * from test1”,最后单击“应用”,“确定”即可 之后,进入程序书写部分 程序部分需要注意接头形式及简单例子如下: Private Sub Command1_Click() ‘VB按钮控件 Dim mydb As New ADODB.Connection ‘定义新的数据库连接 mydb.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\read database\test1\test1.mdb" ‘数据库绝对路径 Dim rs As New ADODB.Recordset ‘定义数据库的一个对象 mydb.Open ‘打开数据库 rs.Open "select * from test1", mydb, 3, 3 ‘打开数据库中的表test1

vb读取文本文件内容并打印输出

读取文本文件内容并打印输出 Private Sub Command1_Click() Dim TextLine As String Open "c:\\testfile.txt" For Input As #1 Do While Not EOF(1) Line Input #1, TextLine Print TextLine Loop Close #1 End Sub 新建文件并写入文件内容 Private Sub Form_Load() Const ForReading = 1, ForWriting = 2 Dim fso, f Dim SkipLineInFile As String Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, True) f.Write "Hello world!" & vbCrLf & "VB Script is fun!" Set f = fso.OpenTextFile("c:\\testfile.txt", ForReading) SkipLineInFile = f.readall Debug.Print SkipLineInFile End Sub 冒泡上浮 Private Sub Command1_Click() Dim d(1 To 4) As Integer d(1) = Val(Text1.Text) d(2) = Val(Text2.Text) d(3) = Val(Text3.Text) d(4) = Val(Text4.Text) For i = 1 To 3 For j = 4 To i + 1 Step -1 If d(j) < d(j - 1) Then t = d(j) d(j) = d(j - 1) d(j - 1) = t End If Next j Next i For i = 1 To 4

vb6的文件操作

总结一下VB6的文件操作,省得要用的时候又到处查找。 一、文件类型 1、顺序文件(文本文件):以ASCII码形式存放的文件。似乎还有Unicode码存放的,有没有BCD码的呢? 2、随机访问文件:这种文件格式很有特点:文件中存放若干条等长的单元(也可以说是记录);每个单元包含同类型、等数量、等长度的数据项;文件中,除了字符串以ASCII码存放之外,其它都以二进制形式直接存放,节省存储空间。这种文件类型非常适合存储需要和软件交互的数据,如结构体数据、类数据等。这也是VB特有的文件访问方式。 3、二进制文件:以二进制形式存放,PE程序文件一般都是这个类型。 二、操作方法 1、顺序文件 打开:Open 文件名For Input | Output | Append As [#]文件号 Input打开读入,文件不存在报错。Output打开覆盖写入,文件不存在则创建。Append打开追加写入,文件不存在则创建。 读:Line Input #文件号, 字符串变量

读一行数据存入字符串变量,数据包括空格、Tab、等,不包括回车符和换行符,所以要显示文件的换行效果,要手动添加回车符和换行符(vbCrLf) Input #文件号, 变量1[, | ;] [变量2]... 这种方式可以存入多个变量,而且变量类型不限于字符串型。写:Print #文件号, 参数1[, | ;] [参数2]... 将各参数逐个写入文件。参数间用逗号隔开时,文件中相应插入多个空格;用分号隔开时,插入一个空格。可以用Spc(n)、Tab(n)等进行排版。 Write #文件号, 参数1[, | ;] [参数2]... 这种写入方式将自动添加界定符,对不同参数的类型加以界定。 2、随机访问文件 打开:Open 文件名[For Random] As [#]文件号Len = 记录长度 For Random可以省略,文件不存在则创建,读写都是这种打开方式。Len是文件中记录的一条长度,用以识别记录的开始与结束,经常用Len(记录名)来获取长度。 读:Get [#]文件号, [记录号], 变量

(完整版)vb连接access数据库及数据读写操作.docx

ACCESS数据库和 VB 的连接 Edited by Ryan 2013 1、建立 Access 数据库 2、启动 VB,建立标准EXE 图 1 3、添加 ActiveX 控件 鼠标指向任意VB 控件,单击右键,选择“部件(O)”,出现图 3 所示界面图2

图3 选择部件“ Microsoft ADO Data Control 6.0 (OLEDB) ”,出现如图 4 所示控件图4

4、添加控件Adodc 图5 4、在控件 Adodc 上添加数据源 鼠标指向控件Adodc1 ,单击右键,选择“ADODC 属性”,弹出如图7 所示界面图6

图7 单击“生成(U). . .”,弹出如图8 所示界面 图8 选择“ Microsoft Jet 4.0 OLE DB Provider”,单击“下一步(N) >>”,弹出如图 9 所示界面

图9 单击“ . . .”,添加数据源(第一步所建Access 数据库),如图 10 所示 图10 单击“测试连接(T)”,出现提示框,如图11 所示 图11 之后点击“确定” ,退回到如图12 所示界面

图12 单击“记录源” ,弹出如图13 所示界面 图13 在“命令类型”下,选择“ 1 - adCmdText”,在“命令文本( SQL)”下,输入“ Select * from test1 ”,最后单击“应用”,“确定”即可 之后,进入程序书写部分 程序部分需要注意接头形式及简单例子如下: Private Sub Command1_Click()‘VB按钮控件 Dim mydb As New ADODB.Connection ‘定义新的数据库连接 mydb.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\read database\test1\test1.mdb" ‘数据库绝对路径 Dim rs As New ADODB.Recordset ‘定义数据库的一个对象 mydb.Open‘打开数据库 rs.Open "select * from test1", mydb, 3, 3‘打开数据库中的表test1

VB创建一个文件夹

★ 用VB在硬盘上创建一个文件夹:Mkdir语句。格式: Mkdir "路径及文件夹名" mkdir "c:\windows\desktop\李新宁" 在桌面上创建个名为"李新宁"的文件夹 又如: Private Sub Command2_Click() MkDir "c:\windows\desktop\mydir" End Sub 如果缺省路径,则为本VB程序的当前路径,如:mkdir "mydir",在当前目录下创建一个文件夹,名为mydir. 用VB删除一个文件夹(空文件夹):RmDir语句,格式: rmdir "路径及文件夹名" 用法与上面类似,此不再说明.如果一个文件夹内有文件,那么,要先用KILL语句删除文件,再用rmdir删除文件夹。格式: kill "路径及文件名" 在路径及文件名中,省略路径则指当前路径,并可用通配符"*"和"?"来删除多个文件,如:kill "*.txt" ,将当前目录下的所有文本文件全部删除。注意:KILL语句删除的文件不会放入回收站。 在调用函数或过程时,该函数或过程如果作为表达式,则其实参要括号,如果调用时是作为语句,实参则不要括号。下面两句是等价的。 SetWindowTextA Form1.hwnd, "API函数修改标题栏文字" --函数语句 Call SetWindowTextA(Form1.hwnd, "API函数修改标题栏文字") --函数为表达式 API调用格式中的 lib"库名" 有一点要注意,如果不是调用Windows\system文件夹下的DLL 库,则要指明路径名,如: public declare function lxnsdll lib "d:\student\mydll.dll"(byval a as integer,byval b as integer) as long 在程序中窗体的运行位置是用一个叫做"窗体布局"的窗口来调整的,可否用另外的替代法,而不用这个不精确的"窗体布局"窗口呢? 当然可以,那就是在代码中,例如要使窗体居于显示器中央,有两个新属性变量,screen.width和screen.height,分别表示本显示器的屏幕宽度(screen.width)和显示器高度(screen.height).用屏幕宽度减去窗体FORM1宽度再除以2,就可得到FORM的left 左边距了(也就是横坐标吧),用屏幕高度减FORM1高度再除以2。就可得到FORM的top 上边距了(纵坐标),这样便可居中,如下: Form1.Left = (Screen.Width - Form1.Width) / 2 Form1.Top = (Screen.Height - Form1.Height) / 2 VB基本概念:对象--对象是具有某些特性的具体事物的抽象。 我在使用VB时遇到一个问题,我想用一个组框(frame1)将几个按纽括在一起,可是当组框画上去后却会把按纽都覆盖掉。按纽不见了(在frame1图层下面),怎么办?什么办法可以决定几个对象重合时,哪个在上,哪个在下?办法如下:1,选中要改变图层前后的对象;2,在"格式"菜单中"顺序"菜单项中选"置前"(在上面)或"置后"(在下面)即可。另外,在代码中也可以,用zorder方法,格式: 对象名.zorder 0或1(0为置前,1为置后) frame1.zorder 1 重点笔记:事件

vb操作txt(VB operation TXT)

vb操作txt(VB operation TXT) 细胞(1,1)代表A1细胞(2,C)代表C2 = COUNTIF(“”)+ COUNTIF(“”)+ COUNTIF(“”) 1。怎么通过代码创建一个文本文件,并读取,更新内容 以上为随即方式打开的文本文件 昏暗的gfilenum为整数 gfilenum = FreeFile 随机gfilenum len = 3打开“文件路径及文件名” “以随即方式打开一文件如果文件不存在就新建 用得到# gfilenum,记录在文件中位置,要放取得的数据的变量”读取操作 用把# gfilenum,记录在文件中位置,要放着要写入数据的变量”写操作 近# filenum”关闭文件 以下为顺序方式打开的文件 昏暗的gfilenum为整数 gfilenum = FreeFile 打开输出”文件路径及文件名”gfilenum”以写入方式打开文本

打印# gfilenum,要写入的文本 写#文件号,要写入的文本 昏暗的gfilenum为整数 gfilenum = FreeFile 打开“文件路径及文件名“输入”以读出方式打开文本gfilenum 输入# gfilenum,用来放读取的内容的内存变量名 还可用线路输入#,等读取更详细的查MSDN() 2。VB读取文本文件时,调用对象中使用报错了文本中去。 如果是 集F = fs。中去(“E:\表格\痕迹。txt”,读书,真的,TristateUseDefault) 出现错误: 运行时错误格”: 无效的过程调用或参数 如果是 集F = fs。中去(“E:\表格\痕迹。txt)”

则不会报错。 用文件对象啊filesystemcontrol操作就好了啊 再加上一个文本读取文件第一行就好了啊。 3。VB通过FileSystemObject,可以读取文本文件(.txt)。对于。蝙蝠文件,VB可否直接读取? 蝙蝠也属于文本类文件 可以读取 不用FSO也行: 把文本文件内容读取文本框: 朦胧的TempFile As Long 昏暗的loadbytes()字节 tempfile = FreeFile 二开文件名作为# tempfile Redim LoadBytes(1~LOF(TempFile))为字节 得到# tempfile,,LoadBytes 关闭tempfile

相关主题
文本预览
相关文档 最新文档