C#中有很多个PictureBox都要设MouseDown事件,可有有简单的代码实现吗?
privatevoidpictureBox1_MouseDown(objectsender,MouseEventArgse){pictureBox1.Hide();}pr...
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
pictureBox1.Hide();
}
private void pictureBox2_MouseDown(object sender, MouseEventArgs e)
{
pictureBox2.Hide();
}
private void pictureBox3_MouseDown(object sender, MouseEventArgs e)
{
pictureBox3.Hide();
}
private void pictureBox4_MouseDown(object sender, MouseEventArgs e)
{
pictureBox4.Hide();
}
private void pictureBox5_MouseDown(object sender, MouseEventArgs e)
{
pictureBox5.Hide();
}
private void pictureBox6_MouseDown(object sender, MouseEventArgs e)
{
pictureBox6.Hide();
}
如果要一个个这样写的话很麻烦,有没有简单的方法? 展开
{
pictureBox1.Hide();
}
private void pictureBox2_MouseDown(object sender, MouseEventArgs e)
{
pictureBox2.Hide();
}
private void pictureBox3_MouseDown(object sender, MouseEventArgs e)
{
pictureBox3.Hide();
}
private void pictureBox4_MouseDown(object sender, MouseEventArgs e)
{
pictureBox4.Hide();
}
private void pictureBox5_MouseDown(object sender, MouseEventArgs e)
{
pictureBox5.Hide();
}
private void pictureBox6_MouseDown(object sender, MouseEventArgs e)
{
pictureBox6.Hide();
}
如果要一个个这样写的话很麻烦,有没有简单的方法? 展开
3个回答
展开全部
首先你先把这几个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" 以此获得触发此动作的发生源, 进行进一步处理.
然后在设计器中(就是拖控件的界面)按住 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" 以此获得触发此动作的发生源, 进行进一步处理.
展开全部
你把事件里面的代码改成这样
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
PictureBox pb=sender as PictureBox;
p.Hide();
}
然后就只留下这一个事件的代码就行了,后面的都可以删了,最后一步就是找到每一个你要添加这个事件的pictureBox,右键,属性,点上面那个闪电,找到下面的MouseDown事件,下拉,选择 pictureBox1_MouseDown,这样就让其他控件也来执行这个事件中的代码
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
PictureBox pb=sender as PictureBox;
p.Hide();
}
然后就只留下这一个事件的代码就行了,后面的都可以删了,最后一步就是找到每一个你要添加这个事件的pictureBox,右键,属性,点上面那个闪电,找到下面的MouseDown事件,下拉,选择 pictureBox1_MouseDown,这样就让其他控件也来执行这个事件中的代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要么动态加载事件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询