C#如何在单击的内容上显示或传递值
我有一些代码可以创建带有图片框的面板。我想告诉我点击了什么图片框。 我正在使用以下命令:C#如何在单击的内容上显示或传递值,c#,click,C#,Click,我有一些代码可以创建带有图片框的面板。我想告诉我点击了什么图片框。 我正在使用以下命令: PicBx[z].Click += new EventHandler(clicked); 我需要在单击时指定一个值吗?或者,是否有一种方法可以显示您单击的内容?处理程序方法获取被单击的控件作为其发送方参数。 您可以将其强制转换到PictureBox,并对其执行任何操作 或者,您可以将添加为处理程序: PicBx[z].Click += delegate { SomeMethod(z, somethingE
PicBx[z].Click += new EventHandler(clicked);
我需要在单击时指定一个值吗?或者,是否有一种方法可以显示您单击的内容?处理程序方法获取被单击的控件作为其
发送方
参数。您可以将其强制转换到
PictureBox
,并对其执行任何操作
或者,您可以将添加为处理程序:
PicBx[z].Click += delegate { SomeMethod(z, somethingElse); };
但是,请确保。单击的方法中确实传递了一个参数(对象发送方)。这是已单击的PictureBox。事件处理程序的签名中将包含两个参数:
对象发送者
和事件参数e
。sender
是您单击的对象,因此您可以将其强制转换为PictureBox
或任何实际类型,您应该准备好了 您的EventHandler
是否有objectsender
参数?我使用的是foreach循环,因此如果使用委托,它将使z成为最后输入的值。是否有一种方法可以使创建的每个Picturebox都独一无二?是的;您需要在循环中声明一个单独的变量。知道了!Putintz2=z代码>在循环中并使用PicBx[z]。单击+=delegate{clicked(z2,null);}代码>工作得很有魅力!但问题是有多个PictureBox是通过foreach循环创建的。ObjectSender将只创建最后一个picturebox值。我需要能够单击创建的图片框并返回该图片框的唯一值。@user:sender
不是来自闭包;它将始终包含触发事件的实际PictureBox。