解决方案 »
- 网页数据中如何快速查找自己想要的数据?高分求教!
- 帮忙做几道题。在线等
- vb modbus Tcp
- 我用commondialog1打开了个文件,如何用text1得到这个文件的路径?
- 怎样在VB中中止其他正在运行的程序
- 有关WebBrowser问题
- 哪位高人可以帮忙改一下VB系统,万分感谢!
- lable中显示相同长度的汉字和字母的混合字符串,如何使它显示同等长度?
- langzhi:好久没有问问题了。现在遇到了麻烦:如何使通过局域网共享上英特网的计算机断开与英特网的连接!
- 高手你在哪里----再说Win2000CA证书的问题
- 如何多表联接搜索....高分求助!
- 用VB的CommonDialog控件“打开”对话框选中的文件,怎样判断所选中文件的大小?
'processData (Text1) '类型不匹配
Call processData(Text1) '成功
processData Text1 '成功
恩,谢谢LS!
刚才测试了一下,的确用 Call processData(Text1) 也可以,不过可以解释下为什么processData(Text1)传递过去的是text1的值而不是text1这个控件么?这种自动转换的机制在什么情况下会被触发呢?
不用call不符合语法要求,编译就报错,也无法运行这句话。根本不会传什么东西过去,更无所谓传过去的是什么。
直接用VB6 DEBUG的..在VB6的"本地"窗口和"监视"窗口都显示arg_textbox是String,值就是text1.text
没有报错,编译通过了.只是在运行时跳出类型不匹配的窗口...
额..发现一个问题..编译的确是通过不了的...因为点击"文件"->生成EXE是生成不了的..但是能够"运行"->"启动",也能够调试...奇怪..
If IsNumeric(arg_textbox.Text) Then
.....省略若干代码
End If
End Sub然后用processData(Text1)传过去就是个String...
--------------------------------------------------------------------
在这个方法中,参数是一个对象
正确的调用方法有二种:
call processData(text1) 'text1是对象
processData text1 'text1是对象传递参数括号是不能随便加的,msdn中有说明,参数加上括号就转换为了表达式,而表达式只能是传值的...
所以你的问题:
processData (text1)就相当于call processData((text1))
这样参数类型变成了传值, textbox的默认属性就是text,所以所传的值是string,这样参数类型不正确当然报错....还有在vb选项中钩选上“要求变量强制声明”吧,加上好的错误处理方法...这样什么编译通过生成不能通过等等现象都不会有....好的编程习惯是非常重要的...