1

これが私がやろうとしていることです。オートバックを使用して動的チェックを作成しています。これをクリックすると、サブルーチンに移動して何かを実行します。私が渡そうとしている2つのパラメーターは、checkoxが配置されているテーブルと、チェックボックスのIDの名前です。しかし、私はエラーが発生しています

AddressOfは、括弧またはかっこなしのメソッドの名前である必要があります。

メソッドには、オブジェクトとしての送信者と互換性のある署名、esystem.eventArgs"がありません。以下に私のコードを示します。

 chkSel = New CheckBox
 chkSel.ID = "check_" & CStr(a)              
 chkSel.AutoPostBack = True

  'This is where I get the error
  AddHandler chkSel.CheckedChanged, AddressOf change_operating_items(tableName, "check_" & CStr(a))  
 tblcell.Controls.Add(chkSel)
 tblrow.Cells.Add(tblcell)
4

1 に答える 1

7

イベントハンドラーを登録するときに引数を渡すことはできません。

代わりに、カスタムイベントの場合、そのイベントを発生させるときにそれらを渡すことができます。

ここでは、CheckedChangedイベントを処理し、にキャストしSenderて、そのプロパティCheckBoxを使用する必要がありIDます。

Sub change_operating_items(sender As Object, e As EventArgs) 
    Dim chk = DirectCast(sender, CheckBox)
    Dim id = chk.ID
    ' do something with it '
EndSub 
于 2012-11-15T16:02:12.647 に答える