C#中有很多个PictureBox都要设MouseDown事件,可有有简单的代码实现吗?

2024-12-19 00:37:53
推荐回答(3个)
回答1:

首先你先把这几个MouseDown函数删了。

然后在设计器中(就是拖控件的界面)按住 Ctrl 键, 将 pictureBox1, pictureBox2, pictureBox3, pictureBox4, pictureBox5, pictureBox6 等控件选中,点击属性中的事件栏(就是那个金色的闪电图标),找到 "MouseDown" 字样的行, 双击, 会跳转到代码视图,这时候映入眼帘的会有一个类似于 pictureBox1_MouseDown 函数 (不一定是pictureBox几, 有可能是pictureBox6_MouseDown,也有可能是pictureBox2_MouseDown, 不用管) 然后在这个函数中写:

PictureBox sourceControl = (PictureBox)sender;
sourceControl.Hide();

这样控件们的MouseDown事件都会指向到这个函数来, 这几个PictureBox其中任意一个发生MouseDown事件都会调用这个函数.

多说一句: WinForm 控件的事件中大多都有 Object sender 参数. sender往往就是这个调用这个函数的控件的实例. 也就是说是谁触发了这个事件. 如果你确信这个函数是由同一种控件的事件调用的,那么你完全可以将 sender 强制转换为该控件的类型, 例如 "PictureBox sourceControl = (PictureBox)sender" 以此获得触发此动作的发生源, 进行进一步处理.

回答2:

你把事件里面的代码改成这样
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
PictureBox pb=sender as PictureBox;
p.Hide();
}
然后就只留下这一个事件的代码就行了,后面的都可以删了,最后一步就是找到每一个你要添加这个事件的pictureBox,右键,属性,点上面那个闪电,找到下面的MouseDown事件,下拉,选择 pictureBox1_MouseDown,这样就让其他控件也来执行这个事件中的代码

回答3:

要么动态加载事件