Вот прорезь. Я нажимаю кнопку и не создаю новый PictureBox без проблем. Когда я нажимаю и перетаскиваю, я перемещаю изображение в новое место. Теперь, когда я снова нажимаю кнопку, я создаю новый экземпляр того же PictureBox, и когда я пытаюсь переместить старый, я в конечном итоге перемещаю вновь созданный ящик. Я полагаю, это связано с тем, что они оба имеют одно и то же имя:Перемещение PictureBox C#
PictureBox pic = new PictureBox();
Как переключаться между двумя изображениями, нажимая?
* UPDATE * Благодаря ответ Nilotpal, я уже удалось решить данную проблему. Единственное, что сейчас кажется, кажется, что изображение теперь дрожит, или переключает места назад и четвертое между другим экземпляром и тем, что я перетаскиваю. В любом случае, я действительно не уверен, как это решить. Есть идеи?
* UPDATE * код у меня есть:
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;
}
Можем ли мы получить больше вашего кода? Как событие или метод, который вы используете для их перемещения. – LightStriker
Ответ Нилотпала - это именно то, что я ищу, за исключением того, что это действительно трясет! Но обязательно прочитайте код: – Alen