网站大量收购闲置独家精品文档,联系QQ:2885784924

第八章 vb动态添加控件.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
搞了快一个下午的这个东东, 其实是在搞一个在VB6.0中动态添加控件和时间的一个实现, 没用过VB6.0, IDE也么有VS好用... 好多东东在探索 结果就报了个这个错误.... run-time error 91 object variable or with block variable not set 查了好久, 原来是使用变量的时候, 没有去new它, 因为别人给的sample中, Dim的时候, 有new,?单身我拿过来用的时候, dim后面的new在build的时候不通过, 我就拿掉了, 结果运行的时候一直出这个问题..? 动态添加控件和时间的, 参考如下(等哪天我有空了,再来写)? 创建数据驱动窗体 所谓数据驱动窗体就是根据所请求的数据的不同生成相应的窗体。举例来讲,假设你现在有一个数据库,其中有些字段必须根据登录者的身份加以显示,授权级别高的用户可以浏览并修改这些字段的内容;授权级别一般的用户只能浏览这些字段中的数据;授权级别低的用户则不能浏览这些字段中的内容。要做到这一点就得利用VB动态添加控件的功能。 动态创建控件 无论你想要创建何种类型的数据驱动窗体,你必须知道如何在运行时动态地创建控件。你可以通过控件数组做到这一点,但VB6的Controls集合所提供的Add方法,功能更强大,灵活性更高。使用该方法,你不需要在设计时将控件的实例放在窗体上。实际上,用Add方法你甚至可以创建程序在编译时根本不存在的控件。这种方法的用法也很简单: 声明一个窗体级的变量 Dim WithEvents txtTotal As TextBox Sub CreateTextbox() ??? 创建新的Textbox控件 ???Set txtTotal = Controls.Add(VB.TextBox, txtTotal) ??? 将控件移动到你所需要的地方 ???txtTotal.Move 1000, 800, 1200, 300 ??? 创建时,所有的控件都是不可见的 ???txtTotal.Visible = True End Sub 请注意Add方法的第二个参数:分配给控件的名称。从代码可读性出发,这个名称一般都与变量名相同。你可以用这个名称从Controls集合中获取相应的控件或移除该控件。例如: Controls.Remove txtTotal 在变量声明时加上WithEvents关键字,即使在设计时窗体不存在该控件,你也可以为该控件的事件编写代码。 上面所讲的方法只适合解决VB内置的控件。例如,当你要添加一个TreeView控件时,VB会要求你证明你已经得到了合法的授权来创建该控件的实例。换句话说,VB要证明这个控件是买来的,而不是从其它附有该控件的程序中借来的。 要证明你经过了合法的授权有下面几种方法: 在窗体上放置一个控件。这也是最简单的方法。你完全没有必要将这个窗体显示出来。 将相关的控件添加到工具箱中,然后在“工程属性”对话框的“生成”标签页中取消选择“删除有关未使用的ActiveX控件的信息”这一项。 向Licenses集合添加一个元素。例如:Debug.Print Licenses.Add(MSMask.MaskedEdBox) 仅仅创建了控件并不足够 要创建一个数据驱动窗体,仅仅知道动态创建控件还不够。例如:现在你要创建一个能根据数据库中表的不同字段自动生成控件的窗体。该窗体可能会创建单行文本框,其长度随字段长度不同而不同;也可能会创建单选按钮或复选按钮以显示布尔型字段;甚至可能创建一个多行文本框显示备注型字段。 你需要解决的第一个问题是:文本框控件的Multiline属性在运行时是只读的,只在设计时可用。幸好,微软的Microsoft Windowless Controls 6.0可以解决这个问题。这组控件集包括了轻量级的TextBox,ComboBox,ListBox,CheckBox,OptionButton,CommandButton和两个scrollbar控件。这些控件与VB内置的相应的控件最大的区别在于:这些控件的所有属性在运行时是可读写的。在VB的安装光盘中的Common\Tools\VB\WinLess文件夹中可以找到这个控件组。用下面的代码可以创建一个多行文本框: Dim WithEvents txtEditor As??MSWLess.WLText Private Sub CreateEditor() ???Set txtEditor = Controls.Add( MSWLess.WLText, txtEditor) ???txtEditor.Move 0, 0, 4000, 4000 ???txtEditor.MultiLine = True

文档评论(0)

xiaofei2001129 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档