110,532
社区成员
发帖
与我相关
我的任务
分享
private Form2 form2;
来保存它的引用,那么在你产生 picturebox 的时候可以注册事件处理过程,来完成调用它的流程,例如 for (var i = 0; i < 100; i++)
{
var pic = new PictureBox();
this.panel1.Controls.Add(pic);
pic.Click += (s, arg) =>
{
if (this.form2 != null)
form2.doSomething(pic.Image);
};
// pic 进一步初始化操作
}
这里,当 pic 被点击的时候,就会将 pic 的图片内容作为参数,来调用 form2 的 doSomething 方法。
设计程序时首先搞清楚对象之间的依赖关系。你的 Form 依赖 form2,那么就可以直接访问它,不必使用依赖倒置的方式。如上的这样一个匿名委托方法就是动态注册给 click 事件处理,当事件触发时就去直接访问 form2。