我有一种将一些按钮添加到自定义控件的方法。我希望每个按钮都有一个事件处理程序,它将弹出一个消息框以显示有关该按钮的详细信息。
我在下面编写了代码,但是我添加的所有按钮都将显示...中最后一个按钮的详细信息。List<Pin>
如何为每个按钮及其各自的pin
对象添加 click 事件 hadnler?
public void Populate(List<Pin> pins)
{
_pins = pins;
var count = _pins.Count;
var location = new Point(5, 5);
foreach (var pin in _pins)
{
var button = new Button();
button.Text = pin.Name;
button.Name = "buttonPin_" + pin.Name;
button.Click += delegate
{
MessageBox.Show(pin.Name + Environment.NewLine + pin.Batch);
};
button.Size = new Size(30, 30);
button.Location = location;
location.X += 30;
if (location.X > Width) location = new Point(5, location.Y + 35);
Controls.Add(button);
}
}