这里是缝。我单击一个按钮并创建一个新的 PictureBox 没问题。当我单击并拖动时,我将图片移动到它的新位置。现在,当我再次单击该按钮时,我创建了同一个 PictureBox 的新实例,当我尝试移动旧的时,我最终移动了新创建的框。我认为这是因为它们都具有相同的名称:
PictureBox pic = new PictureBox();
如何通过单击在两个图片框之间切换?
*更新* 感谢 Nilotpal 的回答,我设法解决了上述问题。唯一的问题是图片框现在似乎在晃动,或者在另一个实例和我正在拖动的那个实例之间来回切换位置。无论哪种方式,我真的不确定如何解决这个问题。有任何想法吗?
*更新* 我拥有的代码:
private void code128ToolStripMenuItem_Click(object sender, EventArgs e)
{
bNum++;
Barcode barcode = new Barcode();
pic = new PictureBox();
pic.Name = "bCode" + bNum;
pic.SizeMode = PictureBoxSizeMode.AutoSize;
pic.Image = barcode.createBarcode(BarcodeLib.TYPE.CODE128, 300, 100, "123456789");
pic.Show();
labelHolder.Controls.Add(pic);
pic.BringToFront();
pic.MouseDown += pic_MouseDown;
pic.MouseMove +=pic_MouseMove;
pic.MouseUp += pic_MouseUp;
}
PictureBox thisPB;
private void pic_MouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
oldX = e.X;
oldY = e.Y;
}
private void pic_MouseMove(object sender, MouseEventArgs e)
{
if(mouseDown)
{
thisPB = (PictureBox)sender;
thisPB.Location = new Point(pic.Location.X - (oldX - e.X), pic.Location.Y - (oldY - e.Y));
this.Refresh();
}
}
private void pic_MouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
}