我有Form,它有1个Panel,Panel有0-N PictureBox - 动态添加到Panel中,但如果我将鼠标移到PictureBox上并单击它,它就不会触发任何动作。我的意思是当我点击Panel时,它会触发click方法,但我怎样才能确保那些PictureBox的行为方式相同呢?
答案 0 :(得分:4)
由于图片框是以dinamically方式添加的,因此您需要为代码中的click事件附加事件处理程序。
在将它添加到控件集合之前做这样的事情..
PictureBox pbx = new PictureBox();
pbx.Click += new EventHandler(pbx_Click);
//Now assign other properties and then add it to control collection
//panel1.Controls.Add(pbx);
private void pbx_Click(object sender, EventArgs e)
{
//handle the click event here
}
答案 1 :(得分:2)
您的PictureBox是否动态添加到Panel,还必须添加PictureBox的Click事件。
请注意,您可以在同一个处理程序中处理所有PictureBoxes Click事件:
for (int i = 0; i < 10; i++)
{
PictureBox pb = new PictureBox();
pb.Name = "pb" + i;
pb.Click +=new EventHandler(pb_Click);
this.Controls.Add(pb);
}
void pb_Click(object sender, EventArgs e)
{
PictureBox pb = (PictureBox) sender;
if (pb.Name == "pb1")
{
...
}
}
你明白了......