我使用的是Windows 7,我的项目是在VB 6.0中。我在执行程序时遇到错误。它显示错误:
未定义用户定义的类型。
这是我的代码:
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case "trace": Call mntrace_Click
Case "snrplot": Call mnSnrplot_Click
Case "skyplot": Call mnskyplot_Click
Case "nmea": Call mnNmea_Click
Case "navigation": Call mnNavigation_Click
Case "survey": Call mnSurvey_Click
Case "pause/start": Call mnpause_Click
Case "save": Call mnsave_Click
Case "print": Call mnprint_Click
Case "offline": Call mnoffline_Click
End Select
End Sub
如何解决此错误?
答案 0 :(得分:24)
当出现错误时,编译器会自动突出显示函数声明的第一行。这意味着错误发生在该行的某个地方。有时这并不像你想的那样有用,但在这种情况下,它设法告诉你很多。
具体来说,函数声明中出现的唯一“用户定义类型”(实际上,唯一的“类型”)是MSComctlLib.Button
。编译器错误消息告诉您的是它不知道MSComctlLib.Button
是什么。因此,它假定它是“用户定义的”类型,因为它通常不知道用户在说什么。 : - )
无论哪种方式,修复都很简单:您需要告诉编译器MSComctlLib.Button
是什么。在这种情况下,假设它是用户定义的类型,它猜错了。它实际上是Microsoft Windows公共控件库中提供的按钮控件。 要告诉VB 6有关此控件的信息,您需要将相应的组件添加到项目中。请按照以下步骤操作:
从“项目”菜单中选择“组件”。
在出现的对话框中,向下滚动列表中的2/3到M的位置。通过“Microsoft Windows Common Controls 6.0”和“Microsoft Common Controls-2 6.0”项目进行检查。 (如果您的服务包名称不同,请不要担心。)
单击“确定”按钮。如果你很快,你会看到一些额外的控件被添加到你的工具箱中。这些是您刚刚添加的组件库提供的控件。在这些控件中有一个名为Button
。
最后,尝试再次编译和运行你的项目 - 这次一切都应该没问题,因为现在编译器知道MSComctlLib.Button
类型是什么。如果您还没有,它是工具栏上显示的按钮。工具栏控件由公共控件库提供,它包含一个类型,用于定义工具栏上显示的单个按钮。
答案 1 :(得分:0)
听起来你错过了对象库的引用。
(您是否在其他地方没有错误地执行过它?)
答案 2 :(得分:0)
我认为您只是从其他地方复制并粘贴了该代码。通常,如果您想引用MSComctlLib,在访问类型库之前,您通常会首先执行Cody Gray所述的步骤。