1

まず第一に、私はこのフォーラムに不慣れで、プログラミングも比較的新しいです。私の問題は、以前にアタッチされたイベント ハンドラーをデタッチできないことです。少なくとも、次のコードの DetachEventHandler はそれを行いません。

private void addHandlersToElement(HtmlElement thiselement)
{
        thiselement.DetachEventHandler("onclick", delegate { myClickHandler(thiselement, EventArgs.Empty); });
        thiselement.AttachEventHandler("onclick", delegate { myClickHandler(thiselement, EventArgs.Empty); });
}

イベント ハンドラーのコードは addHandlersToElementsを呼び出した回数だけ実行されるため、明らかに機能しません。つまり、アタッチは機能しますが、デタッチは機能しません。

実のところ、私はデリゲートについてあまり知りません。デリゲートは、パラメーターとして渡すことを可能にするメソッドのラッパーであるということだけです。このデリゲート{}ブロックは、いくつかの投稿から盗みました。これが、thiselementを送信者オブジェクトとして渡すための唯一の解決策のように思えたからです (これは、実際のハンドラー メソッドで参照しています)。使用する

new EventHandler(myMouseoverEventHandler)

for パラメータは実際には機能しますが、私の知る限り、送信者を渡すことができません。

どんな助けでも大歓迎です。

4

1 に答える 1