0

私はプログラミングにかなり慣れていないので、ByRef と ByVal を使用して渡す必要があると言われましたが、そうすると、次のようなエラーが表示されます。

Error   3   Method 'Private Sub Activate_Click(ByRef intIDToChange As Integer, sender As Object, e As System.EventArgs)' 
cannot handle event 'Public Event Click(sender As Object, e As System.EventArgs)' because they do not have a compatible signature.  
F:\Dropbox\Gooby Backup\School Work\Computing\Unit 4\Room Booking Client\WindowsApplication1\ActivateDeactivate\Activate Deactivate.vb  32  129 WindowsApplication1

サブを次のように開始します。

Private Sub Activate_Click(ByRef intIDToChange As Integer, sender As System.Object, e As System.EventArgs) Handles Activate.Click
4

3 に答える 3

2

イベント署名と互換性のないActivate.Click追加のパラメーターがあるため、メソッドで処理できません。Integer

イベント署名

Click(sender As Object, e As System.EventArgs)

あなたの方法

Activate_Click(ByRef intIDToChange As Integer, sender As System.Object, e As System.EventArgs)
于 2013-03-26T11:29:02.217 に答える
0

メソッドを次のように定義する必要があります

Private Sub Activate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Activate.Click

ボタン クリック イベントは 2 つの引数しかとらないためです。

変数を使用する場合は、次intIDToChangeのようなクラス レベルの変数として指定します。

private intIDToChange as Integerで更新しActivate_Clickます。

于 2013-03-26T11:29:26.090 に答える
0

そこで宣言したイベント ハンドラー (Activate_Click) が、ActivateClick のイベント定義と一致しないようです。

次のように変更してみてください:

Private Sub Activate_Click(ByVal intIDToChange As Integer, ....) Handles Activate.Click

ByVal はパラメーターを介して変数の値を送信しますが、ByRef は変数を送信します (つまり、サブルーチンで行われた変更は、呼び出しルーチンの変数に影響します)。

詳細な回答はこちら: http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/07b9d3b9-5658-49ed-9218-005564e8209e/

于 2013-03-26T11:32:37.930 に答える