是什么导致这个错误?"运行时错误380:无效的属性值"

odi*_*seh 8 vb6 runtime-error

几年前我们使用vb6.0和SQL server 2000开发了一个应用程序.最近,我们的一些客户告诉我们,在运行应用程序时,在某些使用Winxp sp2作为其操作系统的计算机上,当他们想要显示搜索表单时会出现以下错误:

"运行时错误380:无效的属性值"

是什么导致这个错误?

Dav*_*d M 9

我假设您的应用程序使用蒙版编辑框?这是一个相对众所周知的问题,由Microsoft记录在这里:

http://support.microsoft.com/kb/177088

文章提到VB4和5,但我很确定VB6也是如此.

编辑

在进一步的研究中,我也发现了其他控件的问题.在Windows XP上为运行XP的用户重新编译应用程序可能会产生一个可用的版本,尽管它不是一个理想的解决方案......

  • 由于Microsoft控件中的错误,此错误不仅发生.当您发生编程错误并意外将属性设置为无效值时,也会发生这种情况.用户计算机上的不同之处导致不同的行为 - 例如Windows主题或应用程序的不同配置. (4认同)

Mik*_*oss 7

只是为了抛出我的两分钱:在我的经验中这个错误的另一个常见原因是Form_Resize使用数学来调整表单上的控件的事件中的代码.控件尺寸(HeightWidth)不能设置为负值,因此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你的朋友在哪里.


Mar*_*rkJ 5

什么导致运行时错误380?尝试将对象或控件的属性设置为不允许的值.查看搜索表单加载时运行的代码(Form_Load等),以查找将属性设置为依赖于运行时值的任何代码.

我的另一个建议是添加一些错误处理和一些日志记录来追踪导致错误的确切行.

  • 通过说"Got to X","Got to Y"等代码记录 Sprinkle语句.使用这些语句查找错误的确切位置.您可以写入文本文件或事件日志或使用OutputDebugString.
  • 错误处理以下是如何获取错误的堆栈跟踪.为每个可能涉及的例程添加错误处理程序,如下面的代码所示.必备的免费工具MZTools可以自动执行此操作.您还可以使用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)

  • @odiseh不要放弃,有几十种方法可以获得导致错误的确切行.我做了很多次.我已经用一些建议编辑了我的答案. (2认同)
  • @odiseh:如果在代码中添加行号,Erl将返回发生错误的行号. (2认同)