几年前我们使用vb6.0和SQL server 2000开发了一个应用程序.最近,我们的一些客户告诉我们,在运行应用程序时,在某些使用Winxp sp2作为其操作系统的计算机上,当他们想要显示搜索表单时会出现以下错误:
"运行时错误380:无效的属性值"
是什么导致这个错误?
我假设您的应用程序使用蒙版编辑框?这是一个相对众所周知的问题,由Microsoft记录在这里:
http://support.microsoft.com/kb/177088
文章提到VB4和5,但我很确定VB6也是如此.
编辑
在进一步的研究中,我也发现了其他控件的问题.在Windows XP上为运行XP的用户重新编译应用程序可能会产生一个可用的版本,尽管它不是一个理想的解决方案......
只是为了抛出我的两分钱:在我的经验中这个错误的另一个常见原因是Form_Resize使用数学来调整表单上的控件的事件中的代码.控件尺寸(Height和Width)不能设置为负值,因此Form_Resize事件中的以下代码可能会导致此错误:
Private Sub Form_Resize()
'Resize text box to fit the form, with a margin of 1000 twips on the right.'
'This will error out if the width of the Form drops below 1000 twips.'
txtFirstName.Width = Me.Width - 1000
End Sub
Run Code Online (Sandbox Code Playgroud)
如果表单的大小调整为小于1000缇,则上面的代码将引发"无效的属性值"错误.如果这是问题,最简单的解决方案是添加On Error Resume Next第一行,以便忽略这些类型的错误.这是VB6中罕见的情况之一,On Error Resume Next你的朋友在哪里.
什么导致运行时错误380?尝试将对象或控件的属性设置为不允许的值.查看搜索表单加载时运行的代码(Form_Load等),以查找将属性设置为依赖于运行时值的任何代码.
我的另一个建议是添加一些错误处理和一些日志记录来追踪导致错误的确切行.
Erl报告行号并找到确切的行--MZTools可以自动为您输入行号._
On Error Goto Handler
<routine contents>
Handler:
Err.Raise Err.Number, "(function_name)->" & Err.source, Err.Description
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
114135 次 |
| 最近记录: |