教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> VB >> 控件数组的操作技巧 RSS订阅
控件数组的操作技巧
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
控件数组的操作技巧
作者:土人
控件数组有在设计时设置好的,也有在运行中创建的。控件数组一方面使得程序简洁、令代码易于维护,另一方面能使程序具有灵活性。可见,科学地利用控件数组可使编程工作的效率更高。本文是从笔者回答网友的问题中整理出来的,与原来的回答相比略有改动。希望这些"技巧"对大家有些帮助。如有不妥之处,敬请指教。

一、运行中设置数组控件的属性

设窗体上有若干个以 Command1 命名的命令按钮,现要求:点击其中一个按钮后,该按钮不可用,而其它的按钮均可用。以下几行代码可以实现这个要求,比一个一个的设置高效得多。

Private Sub Command1_Click(Index As Integer)

Dim i As Integer 注释:计数器
Dim comNum As Integer 注释:按钮的索引号
comNum = 0
For i = 0 To Command1.Count - 1
comNum = comNum + 1
If comNum > Command1.Count - 1 Then comNum = 0
Command1(comNum).Enabled = True 注释:让所有按钮可用
Next
Command1(Index).Enabled = False 注释:让被单击按钮不可用

End Sub

二、运行中添加和卸载数组控件

窗体上已有一个文本框Text1,程序需要在运行时动态地创建若干文本框,可这样实现:

1.首先,设计时给Text1的Index属性设置为"0",这一步很重要:有了索引号才能创建数组控件;

2.编写代码:[之前请给工程添加两个命令按钮,Name属性取缺省值,Caption属性分别为:添加、卸载]

Private Sub Command1_Click()

Dim txtNum As Integer 注释:Text1的Index号
Dim Num As Integer 注释:赋给各TextBox的值

txtNum = 0 注释:初值
Num = 1 注释:初值

Text1(0).Text = "Text" & Num 注释:第一个Text1的值

Dim i As Integer 注释:计数器
For i = 0 To 4 注释:添加五个TextBox
txtNum = txtNum + 1
Num = Num + 1
Load Text1(txtNum) 注释:加载文本框
Text1(txtNum).Top = Text1(txtNum - 1).Top + 450 注释:设置位置
Text1(txtNum).Text = "Text" & Num 注释:加载内容
Text1(txtNum).Visible = True 注释:令其可见:不能漏
Next

Command1.Enabled = False
Command2.Enabled = True

End Sub

Private Sub Command2_Click()

Dim i As Integer, N As Integer
N = 0
For i = 1 To Text1.Count - 1
N = N + 1
Unload Text1(N)
Next

Command1.Enabled = True
Command2.Enabled = False

End Sub

三、给运行中添加的数组控件命名并编写事件

其实例二已经给数组控件命了名,只是简单了些。本例将文件夹"F:\Txt"下的所有.txt的文件名作为菜单的Caption添加到菜单项里[请事先建立此文件夹并拷贝一些.txt文件,或者更改代码],当点击这些菜单,程序将调出Windows的记事本打开相应的文件。
键入以下代码前请启动VB的菜单编辑器,建立一个父菜单项[Naem和Caption属性任意],然后在此父菜单下建立一个子菜单,Name属性为"mnuFiles",Caption属性为"没有文件"。

Dim MyPath As String 注释:路径名变量

注释:添加并命名菜单过程
Private Sub AddMenu()

Dim MenuNum As Integer 注释:菜单索引号变量
Dim MyFiles As String 注释:文件名变量

MenuNum = 0 注释:初值

MyFiles = Dir(MyPath + "*.txt") 注释:仅查找文本文档
If MyFiles = "" Then Exit Sub 注释:为空则退出过程

mnuFiles(0).Caption = MyFiles 注释:给第一个菜单命名

Do Until MyFiles = ""
MyFiles = Dir()
If MenuNum = 0 Then MenuNum = 1
MenuNum = MenuNum + 1
Load mnuFiles(MenuNum) 注释:加载菜单
mnuFiles(MenuNum).Visible = True 注释:设置为可见:不能漏
mnuFiles(MenuNum).Caption = MyFiles
If mnuFiles(MenuNum).Caption = "" Then Unload mnuFiles(MenuNum)
注释:若菜单名为空则卸载掉
Loop

End Sub

Private Sub Form_Load()

MyPath = "F:\Txt\" 注释:规定路径
Call AddMenu 注释:执行添加菜单过程

End Sub

Private Sub mnuFiles_Click(Index As Integer)

Dim ret As String
注释:用Windows的记事本打开文件:注意中间的空格不能少
ret = "Notepad.exe" & " " & MyPath & mnuFiles(Index).Caption
Shell ret, vbNormalFocus

End Sub

四、控件在窗体上的排列问题

曾有一位网友两次问土人怎样才能在窗体上添加100万个文本框。呵呵,这要多大的显示器才能显示出来呀!不过,添加的数组控件多了,排列确实是个问题。下面的例子给窗体添加499个Label控件,连同事先绘制好的Index号定义为0的控件,总共有500个,能在窗体上从左到右、从上到下整齐地排列。程序运行时要花些许时间。

Option Explicit

Private Sub Form_Load()

Me.Width = 6800
Me.Height = 6000
Me.Caption = "添加标签演示"
With Label1(0)
.Top = 0
.Left = 120
.Height = 200
.Width = 300
.Caption = ""
End With

AddLabels

End Sub

Private Sub AddLabels()

Dim i As Integer 注释:计数器
Dim Num As Integer 注释:Label的Index号
Dim k As Integer 注释:判断是否满行
Dim n As Integer 注释:行数计数器

Num = 0
k = 0
n = 0

Label1(0).Caption = Num + 1

For i = 1 To 499
Num = Num + 1
Load Label1(Num) 注释:加载Label控件

Select Case k
Case 0
Label1(Num).Left = Label1(Num - 1).Left + Label1(0).Width + 20
If Num = 20 Then n = n + 1: k = n

Case n
Label1(n * 20).Left = 120
Label1(n * 20).Top = Label1(0).Height * n
Label1(Num).Top = Label1(0).Height * n
Label1(Num).Left = Label1(Num - 1).Left + Label1(0).Width + 20
If Num = (n + 1) * 20 Then n = n + 1: k = n
End Select

Label1(Num).Caption = Num + 1
Label1(Num).Visible = True
Next

End Sub

来源:upschool.cn
作者:
关键字:控件数组,操作技巧
发表日期:2006-12-20 20:03:33

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:大小写互换的三种方法   下一篇:RAS API上的其他Function


2008-11-20 8:12:32
本文的相类似文章
  • Oracle 数据库操作技巧集
  • 经典:局域网操作技巧与配置实例
  • VB.NET窗体操作技巧两则
  • 举例说明VB中控件数组的使用方法
  • 控件数组的操作技巧
  • Windows XP实用快捷键操作技巧大集锦
  • Windows系统中被遗忘的操作技巧
  • XP系统中实用的命令及操作技巧
  • 不改变系统配置 XP修复功能操作技巧
  • Windows 2000操作技巧完全手册(下)
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com