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

设窗体上有若干个以 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

四、控件在窗体上的排列问题
当然添加的数组控件多了,排列确实是个问题。下面的例子给窗体添加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


VB控件数组之操作技巧相关推荐

  1. BCB高手进阶-如何实现控件数组

    BCB高手进阶-如何实现控件数组 ( 在C++Builder中,没有提供像VB中控件数组的功能,很令遗憾.经过一番琢摸,终于解决了这个问题.技巧不敢独享,奉献出来供大家交流. 在VB中,控件数组可以 ...

  2. 计算机二级vb知识点汇总,计算机等级考试二级VB考点:控件数组

    控件数组是由一组相同类型的控件组成的,它们共用一个控件名,具有相同的数组.控件数组适用于若干个控件执行的操作相似的场合,控件组共享同样的事件过程.下面是小编为大家带来的关于控件数组的知识,欢迎阅读. ...

  3. 学习笔记:VB.net动态添加控件数组并传递事件

    学习笔记:VB.net动态添加控件数组并传递事件 控件数组和事件 "中间人" 动态添加控件 控件数组和事件 新建一个用户窗体,在定义控件数组时,不能用Withevnets来定义数组 ...

  4. VB编程:全局变量控件数组实例简单计算器-12

    运行效果: 程序代码: Dim current, prev, choice    '全局变量 '-------------这段代码是个额外加上的小测试可以忽略---------- '--------- ...

  5. VB控件注册 - 利用资源文件将dll、ocx打包进exe文件

    很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到     现在介绍一下使用资源文件,将dll.ocx打包进exe,点击直接注册的例子: ...

  6. 在 Visual Basic .NET 和 Visual C# .NET 中创建控件数组

    在 Visual Basic .NET 和 Visual C# .NET 中创建控件数组 摘要:本文介绍如何使用 Visual Basic® .NET 和 Visual C#™ .NET 创建和管理控 ...

  7. C#,桌面编程入门(01)——按钮Button属性与事件、动态创建、快捷键、控件数组及自定义Button

    本文是<桌面编程入门>系列文章的开山之篇. <桌面编程入门>系列文章主要介绍桌面编程的各种组件,Button,ComboBox,Panel,WebBrowser...... 类 ...

  8. .NET中添加控件数组

    作者:cuike519的专栏   http://blog.csdn.net/cuike519/ 添加控件数组 在.NET里面我好像没有找到有关于控件数组的说明,但是前两天偶在网上看到了一篇关于如何在. ...

  9. VB6 通过winsock控件数组实现客户端和服务器多对一通信

    说明:我是在最近开发一个考试系统过程中搜索到上面文章的,它提供的思想非常实用.当然,这篇文章仅提供了一个基本思路,详细的实现在人民邮电出版社出版的<Visual Basic网络通信协议分析与应用 ...

最新文章

  1. 3721.com重见天日
  2. Java Enum 使用
  3. 前端js自动填写 点击_爬虫自动填写学生健康打卡表
  4. ASP.NET图片上传(配合jquery.from.js 插件)
  5. 为什么CRM WebClient UI每次点了回车都会触发到后台的roundtrip
  6. matlab井深测量,一种井深测量系统及方法与流程
  7. elementui更改el-table表头背景颜色和字体颜色
  8. 获取IE (控件)的所有链接(包括Frameset, iframe)zz
  9. Android 系统(181 )----Android中各类.mk文件的编写
  10. 2015-12-01 视图
  11. C#语法基础(三)----窗体设计
  12. 非接触式IC卡的分类(三)
  13. halcon 中的select_obj使用
  14. 并行计算——冯·诺依曼结构
  15. 关于vue移动端下载图片
  16. 2022年长沙市成人高考疫情防控政策
  17. 1号店详情页(共5页)
  18. 【.NET学习】.NET入门及学习路线
  19. NCC轻量化开发数据结构总结
  20. 项目中对数据库的操作

热门文章

  1. 《终身成长》读书摘记
  2. 特高压输电线路在线监测系统方案-A40i 核心板 应用解析-飞凌嵌入式
  3. 建设网站制作公司的选择标准是什么?
  4. 剧本杀dm预约平台小程序开发制作功能介绍
  5. python+smtp邮件
  6. NOIP提高组2016 D1T2 【天天爱跑步】
  7. JAVA语言的BUG?
  8. speedoffice使用方法——Word如何插入图片
  9. 喷泉模型fountain model
  10. 03-产品解决方案:需求分析、功能优先级划分、功能价值、用户体验