vb用户控件详解_第1页
vb用户控件详解_第2页
vb用户控件详解_第3页
vb用户控件详解_第4页
vb用户控件详解_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 定义按纽数目时,最少为 2 个按纽,最多为 8 个按纽,且数目须为偶数 4.消息框控件: 这东东是很伤脑筋的玩艺,碰到了一个难以解决的问题:如何得到返回值? 系统的消息框属于模式窗体,用户没有按下消息框上的按纽以前,程序就挂 在那儿,直到按下某个 按纽才会继续住下执行。可是用户控件不行,用户控件好象是异步执行方式,还 没等用户按键,程序已 经执行到调用用户控件的代码后面去了, 这种情况下没法取到返回值。 无奈之下, 想到一个不是办法的 办法:在窗体中增加一个计时器,调用用户控件消息框以后,开启计时器,利用 计时器的自动执行功能 来取得返回值。 窗体代码示例如下: Private Sub Cm

2、d1_Click( MegBox1.Visible = True MegBox1.Msg "内容已经改变,要保存吗?", 51, "提醒" Timer1.Enabled = True End Sub Private Sub Timer1_Timer( Dim msg As String, k As Integer k = MegBox1.FeedValue If k Then Select Case k Case 1: '执行代码 Case 2: '执行代码 Case 6: '执行代码 Case 7: '执行代码 End

3、Select Timer1.Enabled = False MegBox1.Visible = False End If End Sub 这显然比直接调用系统的消息框麻烦多了, 所以用户控件制作的消息框应用 场合受到很大限制。不 过,笔者的目的只是提供给各位做实验,探讨制作用户控件的技巧,它能否广泛 使用倒在其次。如果哪 位有创建象模式窗体那样的用户控件的办法,请不吝赐教,在此先行谢过。 另外,为了简单,笔者没有使用终止、重试、忽略三个按纽(如有必要,请 自行添加) ,组合值中 不要包括相关的常数,也不要包括系统模式常数 40960。 5.菜单控件: MyMenu 控件和 muchMenu 控

4、件是笔者根据自己的原创又漂亮又实用的 记事本界面中的 Form6 窗体代码改编的(原文请见笔者的旧贴) 。本控件的缺憾是:由于用户控件的活 动范围无法超出窗体, 所以如果最终用户将窗体拉小了而菜单又很长的话, 那么菜单体将会有一部分显 示不出来,这是用户控 件的遗憾,没法解决的,所以,菜单控件只适用于窗体大小固定的场合。 MyMenu 控件只适用于一个主菜单的情况,而不适用多个主菜单的情况。 例如,窗体上有文件、编辑 、查看、选项、帮助等个主菜单,难道要用上个 MyMenu 控件不成?所以, 我又编写了 muchMenu 控 件。 muchMenu 控件可以适用 10 个主菜单、 每个主菜单有

5、 20 个菜单项的情况 (当 然还可以扩展) ,这样, 菜单项文本变量 mCaption 就必须使用二维数组,第一维是“层”数(笔者将一个 主菜单称为一层) , 第二维是“项”数。在窗体的属性窗口,你必须先设置 RepeatCount 属性(当前总 层数) ,再设置当前 层数(RepeatCurrent 属性) ,再点击“(自定义”进入属性页对当前层的菜单项进 行设置。 三个菜单控件都是利用单击事件返回用户选中的菜单项编号 SelectedItem。 6.立体字制作控件: 利用这个控件,你可以制作纯背景色的立体字,也可以制作有背景图片的立 体字。 九、将窗体代码的功能改编为用户控件时的注意事项

6、 1.最好只将某个单一的功能改编成用户控件,多功能的用户控件过于复杂也没有 必要。 2. 原 程 序 Form_Load 事 件 中 的 代 码 一 般 必 须 移 植 到 用 户 控 件 的 UserControl_Initialize 事件中,原 因嘛,笔者前面已经讲过,用户控件运行时,首先执行的就是这个 UserControl_Initialize 事件。 3. 原 程 序 Form_Resize 事 件 中 的 代 码 一 般 可 以 移 植 到 用 户 控 件 的 UserControl_Resize 事件中。 4.原程序中的单选按纽或用组合下拉框选择的功能,一般必须在用户控件中定义 成枚举形式的属性。 5.原程序中用复选框选择的功能,一般必须在用户控件中定义成标准形式的属 性。 十、最后的建议 如果你制作的用户控件不想发布,而只是供自己的程序使用,那么建议: 1.不要编译成 OCX 文件。发布程序时都要带上一个 OCX,显得麻烦。不如将 用户控件封装进程序。由于 是源代码级控件,编译时会与模块、窗体、类等等一起被编译进程序,既方便又 提高了效率。 2.根据具体情况,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论