窗体UserForm——我也是类
时间:2022-07-22
本文章向大家介绍窗体UserForm——我也是类,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
UserForm是一种交互界面,方便与用户交互。如果设计了一个这样的交互界面:需要用户输入名称,然后根据名称来运行程序,那么应该如何实现?
最简单的方法自然是在普通模块设置一个公用变量,在UsefForm内部使用这个变量来接收设置的值,然后再执行其他程序。
首先,设置窗体界面:
公用模块:
Public sName As String
Sub TestUserFrom()
FInputName.Show
'要执行的程序…………
MsgBox sName
End Sub
窗体代码:
Private Sub btnOK_Click()
sName = tbName.Text
Unload Me
End Sub
Private Sub btnCancel_Click()
Unload Me
End Sub
这种设计存在的问题:窗体内部的代码依赖了外部的变量,这里举的例子比较简单,只有一个变量,如果设计的是一个较为复杂的窗体,变量很多的情况下,一旦需要复用窗体到其他程序,这时候,还要把普通模块中的变量一起复制过去。
所以,上面这种设计是不合适的,作为这个只需要对外传递某些数据的窗体来说,它的功能应该仅仅是对外传递数据,不依赖外部变量,不包含逻辑代码,它就是一个独立的对象,能够对外提供接口读取数据,这就是类了。
窗体本身就是一种特殊的类,只是它多了一个交互界面,类的那些特性窗体是都具有的,所以,根据类的设计方法,给这个窗体设置一个可以读取的属性UserName:
'设置只读属性
Property Get UserName() As String
UserName = tbName.Text
End Property
Private Sub btnOK_Click()
'隐藏窗体
Me.Hide
End Sub
Private Sub btnCancel_Click()
tbName.Text = ""
Me.Hide
End Sub
这里必须用Me.Hide这种隐藏的方式,如果使用Unload Me,会销毁窗体,那么TextBox设置的内容也会被销毁,读取属性也会出错。
外部普通模块调用的时候,就像是使用一个普通的类一样:
Sub TestUserFrom()
Dim f As FInputName
'创建窗体实例
Set f = New FInputName
'显示窗体
f.Show
Dim sName As String
'获取设置的名称
sName = f.UserName
If sName <> "" Then
'要执行的程序…………
MsgBox sName
End If
Set f = Nothing
End Sub
这样,这个窗体就是一个独立完整的东西,可以在其他任何需要的地方直接调用它,然后读取它设置的数据。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法