用了这么久的vb,刚发现原来还有这样一条语句。

苏门答腊 2005-12-02 10:44:36
很少见到有用这条语句。
好像不用它直接访问对象的属性也可以嘛。
实在想不出它有什么优点。


CallByName 函数


执行一个对象的方法,或者设置或返回一个对象的属性。

语法

CallByName(object, procedurename, calltype,[arguments()])

CallByName 函数的语法有以下部分:

部分 描述
object 必需的;变体型(对象)。函数将要执行的对象的名称。
procedurename 必需的;变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式。
calltype 必需的;常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。
arguments() 可选的:变体型(数组)。


说明

CallByName 函数用于获取或者设置一个属性,或者在运行时使用一个字符串名称来调用一个方法。

在下面的例子中,第一行使用 CallByName 来设置一个文本框的 MousePointer 属性,第二行得到 MousePointer 属性的值,第三行调用 Move 方法来移动文本框:

CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100
...全文
310 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
苏门答腊 2005-12-04
  • 打赏
  • 举报
回复
明白了,看似不可变的过程名都可以当作变量了,vb更灵活了
roger_xiong 2005-12-04
  • 打赏
  • 举报
回复
呵呵,狼兄的方法是我对callbyname最多的用法,我有个项目把菜单的数据和对应的处理过程名称放在数据库里面,程序启动的时候直接从数据库中读取数据加载菜单,点击菜单的时候用callbyname的方法读取数据库中记录的对应的过程,哈~
northwolves 2005-12-04
  • 打赏
  • 举报
回复
不要小看CALLBYNAME:

Sub msg()
MsgBox "I will tell you how to use Callbyname"
End Sub
Private Sub Command1_Click()
Dim x As String
x = "msg"
CallByName Me, x, VbMethod
End Sub
roger_xiong 2005-12-03
  • 打赏
  • 举报
回复

呵呵,楼上的已经把问题说清楚了~

callbyname 的作用其实和 goto 是一样的含义,娃哈哈哈~~


关键时刻,关键用法~~~


flyingscv 2005-12-02
  • 打赏
  • 举报
回复
呵呵,我加一个
while

wend
不用goto话,退不出来

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧