1 回答
![?](http://img1.sycdn.imooc.com/54584f240001db0a02200220-100-100.jpg)
TA贡献1801条经验 获得超16个赞
这是因为在示例代码中,sender 被传递,而不是传递 s。另外你应该传入 e1 而不是 e。
这将给出以下代码:
pb.Click += new EventHandler((s, e1) => this.PictureBox1_Click(s, e1, tempValue))
您还可以使用闭包,而不是将点击处理代码提取到单独的函数中,它可以全部内联完成。
例如:
private void Form1_Load(object sender, EventArgs e)
{
daoConn dc = new daoConn();
List<Model> models = new List<Model>();
string url;
string fName;
models = dc.GetAllModels();
foreach (Model m in models)
{
int tempValue;
tempValue = 1;
PictureBox pb = new PictureBox();
url = baseUrl + m.MhsUrl;
fName = m.mFirstName;
Size size = new Size(100, 100);
pb.ImageLocation = url;
pb.Size = size;
pb.Click += (s,clickEvent) => {
// You can use of pb directly here
// You also have access to things like models too.
string j = pb.ImageLocation;
MfNameTxt.Text = "Chris";
MessageBox.Show("Clicked! " + j);
};
pb.SizeMode = PictureBoxSizeMode.Zoom;
modelHsFlowLayout.Controls.Add(pb);
}
}
- 1 回答
- 0 关注
- 83 浏览
添加回答
举报