この回答からhttps://stackoverflow.com/a/6457528/299110
ctrl と rule の値が毎回変化ctrl.PreRender += (sender, e) => ControlPreRender(ctrl, rule);
する 内の 1 つ以上のコントロールを使用しています。foreach
ただし、ControlPreRender
メソッドが呼び出されると、rule
パラメーターは、イベント ハンドラーがアタッチされた送信者と一致していないように見えます。
私はここで何かが欠けていることを知っていますが、何がわからないのですか!
更新: 回答ありがとうございます。Eric Lippert のブログで実際に説明されています。反対票を投じた人が示唆したように、以下のコードをさらに追加して、問題を少し改善できることを願っています。
foreach (var ctrl in controls)
{
// ...
foreach (var rule in rules)
{
// ...
ctrl.PreRender += (sender, e) => ControlPreRender(ctrl, rule);
}
}
public static void ControlPreRender(Control ctrl, ControlRule rule)
{
// ...
}