我想创建一个使用INI文件来存储新的FlowLayoutPanels的应用程序,我无法处理的是当我想要创建一个EventHandler时,我想要创建一个新的FlowLayoutPanel内的PictureBox来删除它非常自己的FlowLayoutPanel.Here是一些代码:
private void Function(object sender, EventArgs e)
{
FlowLayoutPanel flP = new FlowLayoutPanel();
PictureBox picB = new PictureBox();
Label laB = new Label();
flP.Controls.Add(picB);
flP.Controls.Add(laB);
flowLayoutPanel1.Controls.Add(flP);
picB.DoubleClick += picB_DoubleClick;
}
private void picB_DoubleClick(object sender, EventArgs e)
{
FlowLayoutPanel flp = (FlowLayoutPanel)sender;
flp.Dispose();
}
答案 0 :(得分:1)
您收到该错误,因为click事件的object sender
参数实际上是图片框对象。您正尝试将图片框作为流布局面板。你不能这样做。 flowlayoutpanel不是图片框对象,也不会从图片框继承。
您可能尝试做的事情可以通过将发件人转换为图片框来完成:var pb = (picturebox) sender;
然后获取图片框的父级var flp = pb.parent as flowlayoutpanel;
,然后处理flp。 flp.dispose();
我正在我的iPhone上键入此回答而无法访问VS,我不确定从子对象的事件中处理父对象的后果。