2

子供たちがサンタに手紙を書くプログラムを作ろうとしていますが、問題が発生しました。ボタンで ByVal を使用すると、[互換性のある署名がないため、メソッドはイベントを処理できません] というエラーが返されます。

これがコードです...

        Dim formChecked As Boolean
    ' Load complete
    LabelMain.Text = "Write a Letter to Santa!"
    ' Start program
End Sub

Private Sub ButtonCheck_Click(ByVal formchecked As Boolean, ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonCheck.Click
    If formChecked = True Then
        ButtonSign.Enabled = False
        ButtonCheck.Text = "Check Letter"
        TextBoxName.Enabled = True
        TextBoxAge.Enabled = True

最上位のサブはプログラムの開始時に変数を宣言しているのですが、サブ間で変数を共有できるようにしたいです。ButtonCheck_Click サブでわかるように、私は入れましたByVal formchecked as Booleanが、互換性のある署名がないため、メソッドはイベントを処理できないというエラーを返します。

私はvb.netの初心者で、誰かが私を助けてくれるかどうか迷っていました。

4

1 に答える 1

2

メソッド間で変数を「共有」するには、変数をインスタンス変数にします。つまり、メソッドの外側でフォーム内で宣言します。

Private formChecked As Boolean

Private Sub ButtonCheck_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonCheck.Click

    If formChecked = True Then
        ...
    End If

End Sub
于 2012-12-18T22:33:49.890 に答える