Я пытаюсь добавить некоторые кнопки в элемент управления программным путем, используя for-statement.C# - кнопка Click Event Programmatically Iteration
Что я хочу сделать, так это то, что каждая кнопка запускает событие click с итератором внутри.
Вот пример моего кода:
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);
}
}
В моих сценариях intializes Foo с последним значением итератора, что, будучи 4.
Как я могу выполнить, чтобы отправить каждое значение итератор?
Button1-> Нажать на> Foo (0)
Button2-> Нажать на> Foo (1)
... и так далее.
Что вы попробовали? – BugFinder
'public class ValueWrapper где T: struct {T_Value; public T Value {get {return _Value; } set {_Value = значение; }} public ValueWrapper (T initial) {_Value = initial; }} ', а затем используйте' var @int = new ValueWrapper (i); button.Click + = (отправитель, e) => {var text = @int; }; ' –
Смотрите этот вопрос: https://stackoverflow.com/questions/2226510/closures-in-c-sharp-event-handler-delegates –