KeyDown过程抛出2个编译错误

时间:2019-06-11 21:08:53

标签: dll vb6

尝试编译表单时,出现两种编译错误。任何包含KeyDown过程的子项目都会发生这种情况。我遇到的第一个错误是

  

“未定义用户定义的类型”

我得到的另一个错误是:

  

“过程声明与事件或事件的描述不匹配   具有相同名称的过程”

我已经链接了Microsoft Forms 2.0对象库。当我这样做时,“未定义用户定义类型”错误将更改为过程错误。我找不到任何其他人遇到的问题。

Private Sub cmbDriverNumber_KeyDown(Index As Integer, KeyCode As MSForms.ReturnInteger, Shift As Integer)
    Call cView.sendBack(KeyCode, Shift, Me)
End Sub

2 个答案:

答案 0 :(得分:1)

首先,我的印象是不建议使用MS Forms库,因为它更像是MS Office应用程序中使用的内部库。 (尽管我已经使用了这个库)。 YMMV。

第二,如果您要将一些代码复制粘贴到依赖于MS Forms的应用程序中,但尚未在项目中添加对该库的引用,则应该使用User-defined type not defined

第三,您的代码段包含一个Index,这意味着它正在被控制数组调用。如果此代码只是您粘贴到应用程序中的内容,并且没有使用cmbDriverNumber控件数组,则签名是错误的。而是尝试从事件签名中删除Index As Integer,

祝你好运!

答案 1 :(得分:0)

好吧,简单的答案就是将返回变量定义为Integer,因为这是KeyDown事件的定义方式。我对MSForms库不熟悉,但是MSForms类型的元素的类型是否可能不是整数(例如Long)呢?