2012-09-26 104 views
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) 

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

答えて

20

問題はここにある:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) 

あなたはVB6でコーディングしているので、VB6のプレイブックでいくつかのトリックを学ぶことができます。メソッドを一時的にqqToolbar_ButtonClickのような名前に変更し、デザイナーに移動してツールバーのボタンをクリックして、コード内のイベントを再生成します。

署名が誤って入力された場合は、署名者が正しく再生成され、問題が発生する可能性があります。

もう1つのチェックは、ToolBar1がコントロール配列に追加されたかどうかを確認することですか?その場合には、メソッドのシグネチャは次のように見ている必要があります

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

私はこれらのいずれかがあなたのために問題を解決するのに役立ちます願っています。

+0

非常に迅速な回答ありがとうございます!最初のアドバイスは、私がこの問題を克服するのを助けました! – user1700848

+0

コントロール配列が私の問題でした、ありがとう –

関連する問題