自动批量生成VB控件

  • 内容
    • 总结
    • 代码

内容

最近想做一个象棋程序,想用Image控件来加载棋子,这样,每个格就要放一个Image控件,共要制作90个Image控件,如下图:

先别说一个一个画了,就是复制、粘贴,然后再排版也是一件非常麻烦的事情,难道是我的方法不对?因为对我来说,编程是业余爱好,且属于闭门造车型的,没人教我怎么去写这样的程序,我觉得应该这样写,所以就这样做了。能不能想个办法自动生成呢?先去看一下VB源代码吧!找到保存的文件(Form2.frm),用记事本打开查看一下,原来就是个文本文件,如下图:

看来还是有规律可循的,每个控件就是一小段代码,包含名称及相应的参数,这样就可以写一个自动生成控件的小程序了,因为VB调试比较麻烦,我就用EXCEL VBA写了,在EXCEL里建一个“启用宏的工作薄”,就叫“控件自动生成.xlsm”吧,将生成控件的信息复制到表格里,如下图:


添加两条间隔信息,因为有时左右间隔会有不同,所以还是建两个吧,下面准备写代码,按Alt+F11快捷键,打开VBE编辑器,点击菜单“插入(I)/模块(M)”添加一个编程模块。先做个简单分析,其实整个参数里可变的就3项,1是索引(Index),2是左右间隔(Left),3是上下间隔(Top),其它保持不变,然后将生成的信息放置到Sheet2表里,代码如下图:

执行代码后,到sheet2表里查看生成的信息,如下图:

然后将Sheet2表里信息复制出来,粘贴到Form2.frm文件里,如下图:

重新打开象棋程序看一下,控件全部添加好了,NICE!插入一张棋子图片试试,怎么这么大?原来,在最初制作控件时,忘了设置参数了,Stretch必须为True,改吧!

VB里保存工程后,再次打开Form2.frm文件,发现里面多了两个参数,如下图:

Picture参数是加载图片的,没用,去除,保留Stretch参数,到Excel里修改一下,如图:

将再次制作好的信息复制到Form2.frm文件里,完全正常了。

总结

用自制程序来批量生成控件,真的是非常快速,哪怕是修改控件参数,也是非常快速的,就像刚才那样要对90个控件逐一修改Stretch参数,想想就累。

代码

Sub byWanao()Dim i%, j%, cRow%, cColumn%, sRow%Sheet2.Range("A:B").ClearContentsFor i = 89 To 0 Step -1cRow = i \ 9cColumn = i Mod 9For j = 1 To 8sRow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row + 1Sheet2.Cells(sRow, 1) = Sheet1.Cells(j, 1)If j = 3 ThenSheet2.Cells(sRow, 2) = iElseIf j = 4 ThenSheet2.Cells(sRow, 2) = cColumn * Sheet1.[d1] + Sheet1.Cells(j, 2)ElseIf j = 6 ThenSheet2.Cells(sRow, 2) = cRow * Sheet1.[d2] + Sheet1.Cells(j, 2)ElseSheet2.Cells(sRow, 2) = Sheet1.Cells(j, 2)End IfNextNext
End Sub

自动批量生成VB控件相关推荐

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

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

  2. VB控件实现IObjectSafety安全接口(zt)

    本文叙述了如何在VB中实现控件的IobjectSafety接口, 以标志该控件是脚本安全和初始化安全的. VB控件默认的处理方式是在注册表中注册组件类来标识其安全性, 但实现IobjectSafety ...

  3. VB 控件分类----内部控件;ActiveX 控件;可插入的对象

    控件分类,控件概述 时间:2009-6-18 20:19:33 点击:1158 控件分类 在Visual Basic中,控件可分成三类: 1.内部控件,例如 CommandButton 和 Frame ...

  4. CAD制图,机械CAD,建筑CAD,电力CAD,CAD设计, CAD标注, 打印, 软件开发 ,VC++源代码,VB 控件源程序...

    CAD制图,机械CAD,建筑CAD,电力CAD,CAD设计, CAD标注, 打印, 软件开发 ,VC++源代码,VB 控件源程序 E-Form++可视化组件库集成最新最尖端的图形处理技术,全部采用VC ...

  5. 使用未编译的XAML动态生成WPF控件

    我们所经常使用的WPF界面大部分都是使用XAML文件进行定义编写,然后经编译生成窗体和控件,还有的就是在后台代码中定义控件和元素-这些都是在程序编译后已经固化不变的了-如果想要在程序编译后再使用XAM ...

  6. 【ASP.NET】js动态生成的控件,在后台获取不到怎么办?

    JS代码如下: oNewNode.innerHTML = "  <input type=file id=file"+filecount+" οnchange=per ...

  7. php批量生成优惠券,PHP自动批量生成会员卡号程序

    文章给大家介绍一个PHP自动批量生成会员卡号程序的例子,其实原理非常的简单我们将0-Z(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ)分别代表数值0-35,如字母Z代表35 ...

  8. C#后台如何获取HTML单选框radio的值(在后台生成的控件)

    A:"<input type=\"radio\" name=\"item_" + tid + "\" value=\&quo ...

  9. 使用GridView做出列选择效果(获取动态生成的控件.鼠标点选GridView.Ajax控件)

    先看效果图: 其实就是个一览定制的效果,只不过由于项目的需要,需要使用GridView进行设计,至于为什么不直接使用Html+JQuery,还是因为项目需要,不然维护起来会很麻烦,在制作的过程中会遇到 ...

最新文章

  1. linux筛选之后备份到命令,linux find 命令使用备份
  2. 原型链 —— 以隐式引用作为存储方式的单向链表
  3. 线性代数---线性方程组
  4. Thinkphp内核无限坐席在线客服系统源码
  5. linux- root管理员权限
  6. 会计电算化常考题目二
  7. jquery.autocomplete 使用解析
  8. JS 运算、判断优化
  9. ppt格式刷快捷键_15个PPT神操作,让老师做课件的效率翻倍!
  10. Android 四大组件学习之BroadcastReceiver四
  11. Atitit 发送post http 功能总结目录1. 常见三种模式 Form-data Form-urlencode Raw 12. Php code 12.1. urlencode
  12. 图书馆管理系统-登录流程
  13. 国内代理ip的爬取,构建ip代理池@2
  14. Android与bmob的有机结合
  15. 模仿QQ音乐wap端
  16. 软件测试技术的发展史,软件测试的发展史
  17. matlab恒定值,基于MATLAB的明渠恒定非均匀渐变流水面线的数值计算
  18. 小鸟伏特加怎么用计算机,小鸟伏特加是什么意思,它是怎么火起来的(网络用语)...
  19. python中文件分类_李亚涛:python实现电脑文件一键分类
  20. 推荐一款可以工作汇报远程办公的电脑监控软件

热门文章

  1. Java IDE大比拼
  2. BGP高防是什么意思呢?BGP高防服务器租用 45.250.42.X
  3. 【收藏】华为设备维护
  4. Mac OS home 目录权限修改
  5. 图像特征检测描述:SIFT、SURF、ORB、HOG、LBP特征的原理概述
  6. HTML与Aspx的区别
  7. 初中计算机硬件教学设计,初中计算机教学设计
  8. [JZOJ 5814] 树
  9. OSI七层模型和TCP/IP协议
  10. 【观察】联想凌拓牵手英方软件:为数据管理护航,为“新基建”筑基