カスタムボタン(Winformsコントロールライブラリ)を作成していて、以下のコードを使用して、すべてのmouseenterがボタン内のすべてのコントロールに追加されるようにします。実行すると、スタックオーバーフロー例外が発生します。MouseEnterの代わりにClickを使用した同じコードがあり、正常に機能します。コードは次のとおりです。
public new event EventHandler MouseEnter {
add
{
this.MouseEnter += value;
foreach (Control i in Controls)
{
i.MouseEnter += value;
}
}
remove
{
this.MouseEnter -= value;
foreach (Control i in Controls)
{
i.MouseEnter -= value;
}
}
}
クリックコードは次のとおりです。
public new event EventHandler Click {
add {
this.Click += value;
foreach (Control i in Controls) {
i.Click += value;
}
}
remove {
this.Click -= value;
foreach (Control i in Controls) {
i.Click -= value;
}
}
}