2012-09-26 5 views
7

Sono appena alle prime armi e ho provato a creare un semplice programma in Visual Basic 6. Il codice è quasi equivalente a quello nel libro di testo. Doveva essere una specie di programma di pittura. Sorprendentemente, non è stato possibile compilare l'errore indicato nel titolo di questa domanda. Questo è il codice:non corrisponde alla descrizione dell'evento o della procedura con lo stesso nome

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 

l'applicazione si blocca sulla riga seguente:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) 

Con l'errore:

procedure declaration does not match description of event or procedure having the same name

risposta

20

Il problema è qui:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) 

Ok, da state codificando in VB6, imparate alcuni trucchi nel playbook VB6. Rinominare temporaneamente il metodo con qualcos'altro come qqToolbar_ButtonClick, quindi andare al designer e fare clic sul pulsante nella barra degli strumenti per rigenerare l'evento nel codice.

Nel caso in cui la firma sia stata digitata in modo errato, verrà rigenerata correttamente dal progettista e il problema potrebbe essere visualizzato.

Un altro controllo è per verificare se ToolBar1 è stato aggiunto a un array di controlli? In tal caso, la firma del metodo ha bisogno di guardare in questo modo:

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

Spero che uno di questi aiuta a risolvere il problema per voi.

+0

Grazie mille per la risposta così rapida !!! Il primo tuo consiglio mi ha aiutato a superare questo problema! – user1700848

+0

L'array di controllo era il mio problema, grazie –

Problemi correlati