for文を使用してプログラムでコントロールにいくつかのボタンを追加しようとしています。C# - ボタンのクリックイベントプログラム的に反復
私が達成したいのは、すべてのボタンが反復子の値を持つクリックイベントを発生させるということです。ここで
は、私のコードの例である:私のシナリオで
public class Foo
{
public Foo(int val)
{
//Do something with val
}
}
//for-statement
for(int i = 0; i < 5; ++i)
{
var button = new Button();
button.Click += (sender, e) =>
{
var text = new Foo(i);
}
}
それがあること4.
がどのように私はすべての値を送信するために達成することができますことを、イテレータの最後の値ではFooをintializesイテレータ?
Button1->クリック - >フー(0)
Button2->クリック - >フー(1)
...というように。
あなたは何を試しましたか? – BugFinder
'public class ValueWrapperここで、T:struct {T _Value;パブリックT値{get {return _Value; }セット{_Value =値; }} public ValueWrapper (Tの初期値){_Value =初期; }} 'を使用し、次に' var @int = new ValueWrapper (i);を使用します。 button.Click + =(sender、e)=> {var text = @int; }; ' –
この質問を参照してください:https://stackoverflow.com/questions/2226510/closures-in-c-sharp-event-handler-delegates –