7

我是新手,尝试用Visual Basic 6 编写一个简单的程序,代码几乎和教科书上的一样。它本来是一种绘画程序。令人惊讶的是,它无法使用此问题标题中给出的错误进行编译。这是代码:

Option Explicit

Dim Col As Long

Private Sub Form_Load()
    AutoRedraw = True
    BackColor = vbWhite
    Col = vbBlack
    DrawWidth = 3
End Sub

Private Sub Command1_Click()
    CommonDialog1.ShowOpen
    Form1.Picture = LoadPicture(CommonDialog1.FileName)
End Sub

Private Sub Command2_Click()
    CommonDialog1.ShowSave
    SavePicture Image, CommonDialog1.FileName
End Sub

Private Sub Command3_Click()
    CommonDialog1.ShowColor
    Col = CommonDialog1.Color
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    PSet (X, Y), Col
End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Key
    Case "Line1"
        DrawWidth = 3
    Case "Line2"
        DrawWidth = 20
    End Select
End Sub

应用程序在以下行崩溃:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

出现错误:

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

4

1 回答 1

21

问题在这里:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

好的,由于您使用 VB6 进行编码,因此您可以学习 VB6 手册中的一些技巧。暂时将方法重命名为qqToolbar_ButtonClick之类的别的东西,然后去设计器,点击工具栏中的按钮,重新生成代码中的事件。

如果签名输入错误,它将正确地从设计器重新生成,您可能会看到问题。

另一项检查是查看 ToolBar1 是否已添加到控件数组中?在这种情况下,方法签名需要如下所示:

Private Sub Toolbar1_ButtonClick(ByVal Index as Integer, ByVal Button As MSComctlLib.Button)

我希望其中之一可以帮助您解决问题。

于 2012-09-26T19:11:14.067 回答