C#에서 동적 단추를 만들고 Click 이벤트 처리기 (ID)에 매개 변수를 추가해야합니다.대리인이 포함 된 이벤트 처리기
그러나이 예에서 출력은 all 버튼에 대한 마지막 매개 변수 "10"이며 "1-2-3-4-5 -...."가 아닌 이유는 무엇입니까?
for(int counter = 1; counter < 10; counter++)
{
// Add new button
Button btn = new Button();
btn.Width = 250;
btn.Height = 50;
btn.Click += delegate (object sender1, EventArgs e1)
{ myEventHandler(sender1, e1, counter); };
Test.Controls.Add(btn);
}
public void myEventHandler(object sender, EventArgs e, int i)
{
MessageBox.Show("Test: " + i);
}
고맙습니다. 대리자가 counter
변수 참조 아닌 값을 포착하기 때문이다
플로리안