我们在处理文档的时候碰上的最多的问题就是与字符串相当的问题,这里再拿出来单把各种使用命名的小组件讲一下,我们先上效果图:

  • 我们可以在上图看到最终结果,可以让一行文件名跟随各种组件进行更改,下下面我们先把步骤讲一下,先讲一下界面的画制

  • 我们先新建一个名为UserForm2_mingMing的这么一个面板,把caption改成"命名面板"

  • 然后如图拉出以下组件

  • 效果如下图,然后每个控件的名称稍作修改, 在原本的命名后面加上下划线_和面加上拼音或者英文字符,用来帮助我们记忆和分辨,比如我用的就是textbox1_moRen,取的拼音"默认",其它的全部类似,就不一个一个细说了.

  • 然后把代码贴一下

Private danXuanString, duoXuanString, qieHuanString As StringPrivate Sub CheckBox1_duoXuan1_Click()refreshJieGuo
End SubPrivate Sub CheckBox2_duoXuan2_Click()refreshJieGuo
End SubPrivate Sub CheckBox3_duoXuan3_Click()refreshJieGuo
End SubPrivate Sub ListBox1_danJi_Click()refreshJieGuo
End SubPrivate Sub OptionButton1_Click()refreshJieGuo
End SubPrivate Sub OptionButton2_Click()refreshJieGuo
End SubPrivate Sub OptionButton3_Click()refreshJieGuo
End SubPrivate Sub TextBox1_moRen_Change()refreshJieGuo
End SubPrivate Sub ToggleButton1_Click()refreshJieGuo
End SubPrivate Sub ToggleButton2_Click()refreshJieGuo
End SubPrivate Sub ToggleButton3_Click()refreshJieGuo
End SubPrivate Sub UserForm_Initialize()Me.TextBox1_moRen.Value = system.Read("mingMing", "TextBox1_moRen")Me.ListBox1_danJi.AddItem "单击1"Me.ListBox1_danJi.AddItem "单击2"Me.ListBox1_danJi.AddItem "单击3"Me.ListBox1_danJi.AddItem "单击4"Me.ListBox1_danJi.AddItem "单击5"
End SubPrivate Sub refreshJieGuo()If Me.OptionButton1.Value ThendanXuanString = "-" & Me.OptionButton1.CaptionElseIf Me.OptionButton2.Value ThendanXuanString = "-" & Me.OptionButton2.CaptionElseIf Me.OptionButton3.Value ThendanXuanString = "-" & Me.OptionButton3.CaptionEnd IfduoXuanString = ""If Me.CheckBox1_duoXuan1.Value Then duoXuanString = duoXuanString & "-" & Me.CheckBox1_duoXuan1.CaptionIf Me.CheckBox2_duoXuan2.Value Then duoXuanString = duoXuanString & "-" & Me.CheckBox2_duoXuan2.CaptionIf Me.CheckBox3_duoXuan3.Value Then duoXuanString = duoXuanString & "-" & Me.CheckBox3_duoXuan3.CaptionqieHuanString = ""If Me.ToggleButton1.Value Then qieHuanString = qieHuanString & "-" & Me.ToggleButton1.CaptionIf Me.ToggleButton2.Value Then qieHuanString = qieHuanString & "-" & Me.ToggleButton2.CaptionIf Me.ToggleButton3.Value Then qieHuanString = qieHuanString & "-" & Me.ToggleButton3.CaptionMe.TextBox2_jieGuo.Value = Me.TextBox1_moRen.Value & "-" & Me.ListBox1_danJi.Value & danXuanString & duoXuanString & qieHuanString
End SubPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)system.WriteProfile "mingMing", "TextBox1_moRen", Me.TextBox1_moRen.Value
End Sub
  • 然后我们把面板显示出来在主程序里面加上一个命名面板的显示

  • 然后把按钮拉出来

  • 好了, 到这一步就完成了

  • 下面给新出现的代码进行释义:

Private danXuanString, duoXuanString, qieHuanString As String 这一段是直接在内存中设定三个未初始化的字符串.这里是用的Private代替了Dim来进行设置,表示后面的值都只能在本文件内部才能访问,从另外的文件中就无法使用.点来访问,因为我们用Private把它定义为私有的了.

Private Sub CheckBox1_duoXuan1_Click()前面有很多行都是这种结构,这个就是双击每一个小控件之后弹出来的鼠标点击事件,就意味着当我们在面板上用鼠标左键点击了某个控件之后所想要执行的功能,可以看到我们每个功能都是相同的设定,里面全是refreshJieGuo,这个就是我把需要的功能都放进了这个功能函数里面

下面我们看一下refreshJieGuo这个功能里面,前面的三大段分别是给这三个danXuanString, duoXuanString, qieHuanString赋值,因为是要从控件里面获取值,还需要先判定一下这个控件是否被启用,所以是用的if语句, 因为第二第三第四第五个控件是否启用的值都是储存在.value下面的,所以我们只要取这个值就可以进行判定了,如果这个值是true那么会就执行then后面的代码,如果为false就不会执行.

所以可以看到这里就用了一个字符串很常用的拼接方式,就是duoXuanString = duoXuanString & "-" & Me.CheckBox1_duoXuan1.Caption ,也就是"自己"=“自己”+“某某某”,也就是把等于号后面的内容拼接起来储存在等号前面这个值中,虽然两次都是自己,但是确实是可以这样用的

然后我们还用二十三节讲过的在INI文件中储存数据UserForm_QueryClose在这个面板关闭功能中,我们把默认框内的值储存到硬盘中,通过system里同已经写好的功能实现即可

me.OptionButton1.Caption这个就是面板下在的控件OptionButton1caption也就是我们自己修改的标题,是通过me这个参数进行访问的.

好了,这一个节写得虽然很长,但其实也没有什么新内容

CorelDRAWX4的VBA插件开发(二十四)复合选框组件与联合命名面板相关推荐

  1. CorelDRAWX4的VBA插件开发(三十四)调用C++实现一键智能群组(第3节)主调函数以及三个被调函数

    这一节就进入到了群组的实质性的内容,先把群组Qunzu()函数展示一下 先展示主调函数Qunzu(),函数里面还有四个被调函数等会儿再说 BOOL Qunzu() {//undo开 这个是一键多步撤销 ...

  2. CorelDRAWX4的VBA插件开发(二十五)多类目选择实现复合框内容置换

    有时候我们的复合框内的内容是有更多的需求,但是我们又不想另开一个窗口,怎么办呢,我们直接使用复合框内容替换就行啦 先上效果图: 先在面第板上拉出一个框架, 再在里面添加上三个选项按钮, 添加好之后这三 ...

  3. CorelDRAWX4的VBA插件开发(三十五)调用C++实现一键智能群组(第4节)递归调用框选工具

    上一节没有讲到的递归函数diguiSelect,这一单独列出来讲一下 INT diguiSelect(long count, DOUBLE LX, DOUBLE BY, DOUBLE RX, DOUB ...

  4. CorelDRAWX4的VBA插件开发(二十七)使用C++制作动态连接库DLL辅助VBA构键强大功能-(1)前言和准备工作

    我们在使用VBA的时候会很多的局限性,包括调用库和递归函数,对指针结构体和类都不友好,对时间复杂度和空间复杂度都优化得不够,换言之VB就不是从性能出发的语言,所以难免力不从心 所以这里用C++为VBA ...

  5. CorelDRAWX4的VBA插件开发(二十三)INI初始化文件的读写和路径的保存

    我们在上一节当中写了一个选择路径的功能, 所以我们希望这个路径在每一次打开的时候都会重新显示出上次选择的, 这就需要借用到外部文件来储存了, 要把这个内容写在硬盘上, 这种文件一般就是所谓的后缀为.i ...

  6. 操作系统学习笔记(二十四)~页框分配和颠簸+内核内存分配+虚拟内存中的其他考虑

    9.4 页框分配和颠簸 1.系统"抖动"现象的发生可能是由()引起.A A.置换算法选择不当 B.交换的信息量过大 C.内存容量充足 D.请求页式管理方案 2.允许进程在所有的页框 ...

  7. CorelDRAWX4的VBA插件开发(四) 用一个例子了解CORELDRAW-X4的四个基本对象

    CorelDRAWX4的VBA插件开发(四) 用一个例子了解CORELDRAW-X4的四个基本对象 1.打开第一章的界面如下图: 2.把之前的代码稍作修改 Sub 第一个插件()Dim zongShu ...

  8. 二十四、Struts2中的UI标签

    二十四.Struts2中的UI标签 Struts2中UI标签的优势: 数据回显 页面布局和排版(Freemark),struts2提供了一些常用的排版(主题:xhtml默认 simple ajax) ...

  9. python 分数序列求和公式_Python分数序列求和,编程练习题实例二十四

    本文是关于Python分数序列求和的应用练习,适合菜鸟练习使用,python大牛绕行哦. Python练习题问题如下: 问题简述:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13 要 ...

最新文章

  1. oracle 多行合并成一行
  2. Python 多版本安装模块
  3. python文件打包发布(引用的包也可以加进来),打包出错解决了,运行出错解决了...
  4. 通达oa wbupload.php,关于通达OA上传附件类型限制的设置
  5. 文化的作用与本质是什么
  6. 技术总监灵魂一问:你精通那么多技术,为何还做不好一个项目?
  7. 力扣题目系列:1313. 解压缩编码列表
  8. 对在Qtopia中添加国际化支持一文补充
  9. 刷ROM必備的clockworkmod recovery
  10. Linux系统编程——进程间通信概述
  11. 基于51单片机的金沙滩12864的计算器
  12. UVA 11137 - Ingenuous Cubrency
  13. 华为路由器Nasp设置 以及直连路由,静态路由,缺省路由,
  14. 短信服务器和运营商的区别,什么是短信服务商?与短信运营商的区别
  15. IE浏览器js 中http请求,中文传参报400错误-解决方法
  16. STM32开发(14)----CubeMX配置ADC
  17. 敏捷项目管理敏捷工作之冲刺计划
  18. 集成微控制器使太阳能微型逆变器设计成本有效
  19. ReferenceError: primordials is not defined错误解决
  20. 不愧是阿里P8!java如何遍历链表

热门文章

  1. 解决【无法对套接字执行操作,因为系统缺少足够的缓冲区空间,或者因为系统上的队列已满127.0.0.1:8086】问题
  2. 前端面试题整理 (ES6篇)
  3. 使用Jmeter输出错误响应结果到日志
  4. 清除微信小程序、微信H5缓存
  5. 娱美德举办WEMIX空投活动以庆祝《传奇M》在全球发布!
  6. 列出Excel所有sheet名称
  7. iOS实现网速实时监测
  8. 二维dct变换例题_数字图像处理试题(带答案)
  9. CRNN:文本序列识别
  10. 让终端支持播放mp3,移植mp3解码库libmad和madplay到嵌入式linux