none
Implementar Cortar, Copiar y Pegar de un PictureBox RRS feed

  • Pregunta

  • Buenas, estoy intentando implementar mediante el Clipboard los métodos Copiar, Cortar y Pegar. A pesar de mirar en ujn libro, que en el cual el ejemplo va dirigido a copiar y pegar la imagen de un pictureBox, no soy capaz de hacerlo pero copiando al portapapeles y pegando un control PictureBox completo, no solo la imagen.

    Lo estoy intentando de esta manera:

    private void EditarCopiar_Click(object sender, EventArgs e)
            {
                if (pictActivo == null) return;
                DataObject data_object = new DataObject();
                data_object.SetData(pictActivo);
                Clipboard.SetDataObject(data_object);
            }

            private void EditarPegar_Click(object sender, EventArgs e)
            {
                PictureBox pict = new PictureBox();

                IDataObject data_object = Clipboard.GetDataObject();
                if (data_object.GetDataPresent("PictureBox"))
                    pict = (PictureBox)data_object.GetData("PictureBox");
            }

    Algo de ayuda plissss

    Gracias
    martes, 23 de noviembre de 2010 17:29

Respuestas

  • Hola,

     

    Si tiens un picturebox lo primero es dejar que el usuario seleccione una imagen

    if (opnImage.ShowDialog() == DialogResult .OK)

    {

    Image imgToCopy = Image .FromFile(opnImage.FileName);//obtenemos la imagen

    Clipboard .SetImage(imgToCopy);//llevamos la imagen al clipboar

    }

     

    Luego en un boton paste

    picClipboard.Image = Clipboard .GetImage();



    Para limpiar el clipboar
    Clipboard .Clear();

    Saludos,

     

     



    Jason Ulloa
    Mi Blog
    martes, 23 de noviembre de 2010 17:44

Todas las respuestas

  • Hola,

     

    Si tiens un picturebox lo primero es dejar que el usuario seleccione una imagen

    if (opnImage.ShowDialog() == DialogResult .OK)

    {

    Image imgToCopy = Image .FromFile(opnImage.FileName);//obtenemos la imagen

    Clipboard .SetImage(imgToCopy);//llevamos la imagen al clipboar

    }

     

    Luego en un boton paste

    picClipboard.Image = Clipboard .GetImage();



    Para limpiar el clipboar
    Clipboard .Clear();

    Saludos,

     

     



    Jason Ulloa
    Mi Blog
    martes, 23 de noviembre de 2010 17:44
  • Buenas, gracias por la respuesta, pero no me sirve...ya que como digo en el post lo que necesito es que se pueda cortar, copiar y pegar un control PictureBox completo, no solo la imagen, ya que si el pictureBox tiene padding o backColor....al hacer lo que propones solo se pega la imagen pero no las propiedades del pictureBox que se copia.

    Muchas gracias de todas formas y si pueden ayudarme lo agradecería porque no encuentro nada por internet.

    Gracias!

    miércoles, 24 de noviembre de 2010 0:46
  • Gracias por la respuesta, en serio. Pero....no sé como sacar el código a partir de sus indicaciones ya que nunca he trabajado con GlobalAlloct()/GMEM_SHARE y tampoco sé cómo tendría que hacer para serializar la clase o qué hacer...

    Agradecería un poco de código o algún tutorial en el que me pueda guiar.

    Lo agradecería muchísimo.

    miércoles, 24 de noviembre de 2010 1:20
  • Yo lo hago así para copiar, para pegar debe ser muy similar...

     

        private void button1_Click(object sender, EventArgs e)
        {
          if (this.pictureBox1.Image != null)
          {
            Clipboard.SetImage(this.pictureBox1.Image);
          }
        }
    

    Cordial saludo,

     


    Mauricio Atanache G. - MCP
    Bogotá - Colombia
    "Bienaventurados los Pesimistas. Por que hacen BACKUPS."
    miércoles, 24 de noviembre de 2010 1:22
  • Gracias Mauricio, pero eso es solo para copiar la imagen del PictureBox y no el PictureBox completo, jeje.

    Gracias de todas formas!

    miércoles, 24 de noviembre de 2010 1:24