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 などの別の名前に一時的に変更し、デザイナーに移動してツールバーのボタンをクリックし、コードでイベントを再生成します。

署名が誤って入力された場合、デザイナーから正しく再生成され、問題が発生する可能性があります。

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

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

これらのいずれかが問題の解決に役立つことを願っています。

于 2012-09-26T19:11:14.067 に答える