当前位置: 网学 > 编程文档 > VB > 正文

VB下Add-Ins的编程

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
窗体,也可以是ActiveX控件或ActiveX文档等,然后通过该设计器来获得设计器上的用户控制。上述代码中,首先将mcmpCurrenForm变量被设为当前选中的构件,然后判断它是否是窗体,用户控件,ActiveX文档或属性页,如果是,则获取其设计器即Designer对象,然后通过Designer对象的VBControls属性获得其上所有控制的集合,这样就可以操作该集合中的每一个VBControls控制了。对每一个控制,通过其ControlObject 属性可以获得其相应的屏幕上的控制对象,然后就可以设置该对象的任意属性了。在上述代码中,也可以使用control.Properties!Fontname取代control.ControlObject.FontName,其结果是一样的。另外,为了防止对没有Font属性的控制进行该属性设置将导致错误发生,在程序的开头使用了On Error Resume Next语句以忽略这些错误。下面是该程序的用户界面:

 

四、 进一步的改进

对上述程序还可做进一步的改进,下面列出几种改进思想及编程方案。

1、 设置控制的其它属性

上述代码主要用来设置控制的字体,但基于同样的原理,我们只要对代码稍加改变就可以设置控制的其它属性,如前景色,背景色,可见或不可见等。

2、 为当前工程中的所有窗体设置控制属性

在上述代码中,是对当前选中的窗体里的控制设置字体,但有时我们需要将工程中的所有窗体中的所有控制一次设置其属性,而不是每次选择一个窗体进行设置。这时可以采用如下方法:首先用VBE(即当前会话期实例)的ActiveVBProject属性获得当前的工程,然后通过其VBComponents属性获得当前工程中的所有组件集合,针对每一组件判断它是否为窗体或 ActiveX控件等,剩下的代码就和上面基本一样了。

3、 仅为选中的控制设置属性

若只是需要为选中的控制设置属性则可以利用VBForm 对象的SelectedVBControls属性获得当前选中的所有控制的集合,然后对其包含的控制设置属性即可。也可利用VBControl的InSelection属性判断该控制是否被选中,然后仅对选中的控制设置属性即可。

4、 当控件被添加到窗体时,自动为它设置属性

要实现当控件被添加到窗体时,自动为它设置属性的功能需要用到VBE的事件对象,即与上面提到的为菜单提供事件代码的方法一样。首先声明一个事件变量:Public WithEvents CtlHandler As VBControlsEvents,然后在接口IDTExtensibility的OnConnection方法代码中挂接控制事件处理:Set Me.CtlHandler=VBInstance.Events.VBControlsEvents (Nothing,Nothi-ng),这样就可以进行事件处理了。而进行事件处理的代码可写在CtlHandler变量的ItemAdded代码中,如下:

Private Sub CtlHandler-ItemAddec (ByVal VBControl As VBIDE.VBControl)

''这里可加入所需要的代码。

End Sub

当然,除上述改进外,我们还可以提出更多的改进方案,以丰富原程序的功能。总之,由于VB显露其IDE包括窗口、工程、控制,甚至事件、代码等各个部分的接口,使得我们能非常简单而有效地控制自己的编程活动和定制自己的界面,从而节省了编程时间,提高了工作效率,也减少了错误的发生。

 

参考文献

1、[美]鲍(Boyle,D)等著·Visual Basic 4 开发人员指南·薛万鹏等译·机械工业出版社

2、Visual Basic 5联机手册·Microsoft Corporation 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号