Estoy haciendo un juego de mesa, donde las fichas son picturebox, pero necesito moverlas y he usado DragDrop para poder mover la imagen del picturebox a otro. Pero luego necesito borrar la imagen del original y en un caso hacer invisible el picturebox una vez usada la imagen.
No puedo hacer eso, porque solo se copia la imagen y no se mueve, y cuando se completa el evento la unica informacion que llega es la de la imagen por argumento pero no la del picturebox de donde se sacó entonces no puedo saber de que picturebox saqué la imagen.
Uso esto:
El codigo funciona, pic1 queda con la imagen de picA1, pero lo que quiero ahora es poder manejar a picA1 para poder usar picA1.image = null; pero sin saber que es picA1 ya que puede llegar el Drop de cualquier otro picturebox.
Intente de todo en el ultimo evento, donde se produce el cambio, usando el argumento "e", pero solo es de lectura y no hace referencia al control.
Mi idea seria que en este ultimo evento se pudiera hacer por ejemplo: e.image = null; para poder borrarla.
Pero tal vez tengo que usar un evento de picA1, pero es que tiene que eliminarse la imagen cuando se hizo el drag ya entonces tiene que ser en este ultimo evento siempre.
Espero que se haya entendido y me puedan dar una mano, saludos!
No puedo hacer eso, porque solo se copia la imagen y no se mueve, y cuando se completa el evento la unica informacion que llega es la de la imagen por argumento pero no la del picturebox de donde se sacó entonces no puedo saber de que picturebox saqué la imagen.
Uso esto:
Código (csharp) [Seleccionar]
private void picA1_MouseDown(object sender, MouseEventArgs e)
{
picA1.DoDragDrop(picA1.Image, DragDropEffects.Move);
}
private void pic1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void pic1_DragDrop(object sender, DragEventArgs e)
{
pic1.Image = (Image)e.Data.GetData(DataFormats.Bitmap);
}
El codigo funciona, pic1 queda con la imagen de picA1, pero lo que quiero ahora es poder manejar a picA1 para poder usar picA1.image = null; pero sin saber que es picA1 ya que puede llegar el Drop de cualquier otro picturebox.
Intente de todo en el ultimo evento, donde se produce el cambio, usando el argumento "e", pero solo es de lectura y no hace referencia al control.
Mi idea seria que en este ultimo evento se pudiera hacer por ejemplo: e.image = null; para poder borrarla.
Pero tal vez tengo que usar un evento de picA1, pero es que tiene que eliminarse la imagen cuando se hizo el drag ya entonces tiene que ser en este ultimo evento siempre.
Espero que se haya entendido y me puedan dar una mano, saludos!