我是初学程序员,我觉得我不必要地重复代码.我想制作一个由16个图片框组成的图片益智游戏.问题是我觉得我必须为每个图片框的事件重复代码,如下例所示:
Point move;
bool isDragging = false;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
isDragging = true;
move = e.Location;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if(isDragging == true)
{
pictureBox1.Left += e.X - move.X;
pictureBox1.Top += e.Y - move.Y;
pictureBox1.BringToFront();
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
isDragging = false;
}
Run Code Online (Sandbox Code Playgroud)
只需为您的3个事件中的每个事件创建一个方法:
private void pictureBox_MouseDown(object sender, MouseEventArgs e)
{
isDragging = true;
move = e.Location;
}
private void pictureBox_MouseMove(object sender, MouseEventArgs e)
{
if(isDragging == true)
{
// Luckily the sender parameter will tell us which PictureBox we are dealing with
PictureBox pb = (PictureBox)sender;
pb.Left += e.X - move.X;
pb.Top += e.Y - move.Y;
pb.BringToFront();
}
}
private void pictureBox_MouseUp(object sender, MouseEventArgs e)
{
isDragging = false;
}
Run Code Online (Sandbox Code Playgroud)
然后转到设计器中的每个16个图片框,并将MouseUp事件处理程序设置为指向pictureBox_MouseUp并MouseMove指向要指向pictureBox_MouseMove的MouseDown事件处理程序的事件处理程序pictureBox_MouseMove.为16个图片框中的每一个执行此操作.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |