¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Importante Es posible que este documento no represente los procedimientos recomendados para el desarrollo actual. Puede que los vínculos a las descargas y otros recursos ya no sean válidos. Encontrará aquí la versión que se recomienda en la actualidad.

Cómo: Recuperar datos del Portapapeles

La clase Clipboard proporciona métodos que puede utilizar para interactuar con el Portapapeles del sistema operativo Windows. Muchas aplicaciones utilizan el Portapapeles como un repositorio temporal para los datos. Por ejemplo, los procesadores de textos utilizan el Portapapeles durante las operaciones de cortar y pegar. El Portapapeles también resulta de utilidad para transferir información de una aplicación a otra.

Algunas aplicaciones almacenan datos en el Portapapeles en varios formatos para aumentar el número de otras aplicaciones que pueden utilizar potencialmente los datos. Un formato de Portapapeles es una cadena que identifica el formato. Una aplicación que utiliza el formato identificado puede recuperar los datos asociados en el Portapapeles. La clase DataFormats proporciona los nombres de formato predefinidos para su uso. También puede utilizar sus propios nombres de formato o utilizar un tipo de objeto como su formato. Para obtener información sobre cómo agregar datos al Portapapeles, vea Cómo: Agregar datos al Portapapeles.

Para determinar si el Portapapeles contiene datos en un formato determinado, utilice uno de los métodos ContainsFormat o el método GetData. Para recuperar datos del Portapapeles, utilice uno de los métodos GetFormat o el método GetData. Estos métodos son nuevos en Microsoft .NET Framework version 2.0.

Para tener acceso a los datos del Portapapeles utilizando versiones anteriores a .NET Framework 2.0, utilice el método GetDataObject y llame a los métodos de la interfaz IDataObject devuelta. Para determinar si un formato determinado está disponible en el objeto devuelto, por ejemplo, llame al método GetDataPresent.

NotaNota

Todas las aplicaciones basadas en Windows comparten el Portapapeles del sistema. Por consiguiente, el contenido está sujeto a cambios cuando pase a otra aplicación.

La clase Clipboard sólo se puede utilizar en subprocesos establecidos en modo STA (Subprocesamiento controlado simple). Para utilizar esta clase, cerciórese de que el método Main está marcado con el atributo STAThreadAttribute.

Para recuperar datos del Portapapeles en un solo formato común

  • Utilice el método GetAudioStream, GetFileDropList, GetImage o GetText. Opcionalmente, utilice primero los métodos ContainsFormat correspondientes para determinar si los datos están disponibles en un formato determinado. Estos métodos sólo están disponibles en Microsoft .NET Framework version 2.0.

    // Demonstrates SetAudio, ContainsAudio, and GetAudioStream.
    public System.IO.Stream SwapClipboardAudio(
        System.IO.Stream replacementAudioStream)
    {
        System.IO.Stream returnAudioStream = null;
        if (Clipboard.ContainsAudio())
        {
            returnAudioStream = Clipboard.GetAudioStream();
            Clipboard.SetAudio(replacementAudioStream);
        }
        return returnAudioStream;
    }
    
    // Demonstrates SetFileDropList, ContainsFileDroList, and GetFileDropList
    public System.Collections.Specialized.StringCollection
        SwapClipboardFileDropList(
        System.Collections.Specialized.StringCollection replacementList)
    {
        System.Collections.Specialized.StringCollection returnList = null;
        if (Clipboard.ContainsFileDropList())
        {
            returnList = Clipboard.GetFileDropList();
            Clipboard.SetFileDropList(replacementList);
        }
        return returnList;
    }
    
    // Demonstrates SetImage, ContainsImage, and GetImage.
    public System.Drawing.Image SwapClipboardImage(
        System.Drawing.Image replacementImage)
    {
        System.Drawing.Image returnImage = null;
        if (Clipboard.ContainsImage())
        {
            returnImage = Clipboard.GetImage();
            Clipboard.SetImage(replacementImage);
        }
        return returnImage;
    }
    
    // Demonstrates SetText, ContainsText, and GetText.
    public String SwapClipboardHtmlText(String replacementHtmlText)
    {
        String returnHtmlText = null;
        if (Clipboard.ContainsText(TextDataFormat.Html))
        {
            returnHtmlText = Clipboard.GetText(TextDataFormat.Html);
            Clipboard.SetText(replacementHtmlText, TextDataFormat.Html);
        }
        return returnHtmlText;
    }
    
    

Para recuperar datos del Portapapeles en un formato personalizado

  • Utilice el método GetData con un nombre de formato personalizado. Este método sólo está disponible en Microsoft .NET Framework version 2.0.

    También puede utilizar los nombres de formato predefinidos con el método SetData. Para obtener más información, vea DataFormats.

        // Demonstrates SetData, ContainsData, and GetData
        // using a custom format name and a business object.
        public Customer TestCustomFormat
        {
            get
            {
                Clipboard.SetData("CustomerFormat", new Customer("Customer Name"));
                if (Clipboard.ContainsData("CustomerFormat")) 
                {
                    return Clipboard.GetData("CustomerFormat") as Customer;
                }
                return null;
            }
        }
    ...    [Serializable]
        public class Customer
        {
            private string nameValue = string.Empty;
            public Customer(String name)
            {
                nameValue = name;
            }
            public string Name
            {
                get { return nameValue; }
                set { nameValue = value; }
            }
        }
    
    

Para recuperar datos del Portapapeles en varios formatos

  • Utilice el método GetDataObject. Debe utilizar este método para recuperar datos del Portapapeles en versiones anteriores a .NET Framework 2.0.

        // Demonstrates how to use a DataObject to add
        // data to the Clipboard in multiple formats.
        public void TestClipboardMultipleFormats()
        {
            DataObject data = new DataObject();
    
            // Add a Customer object using the type as the format.
            data.SetData(new Customer("Customer as Customer object"));
    
            // Add a ListViewItem object using a custom format name.
            data.SetData("CustomFormat", 
                new ListViewItem("Customer as ListViewItem"));
    
            Clipboard.SetDataObject(data);
            DataObject retrievedData = (DataObject)Clipboard.GetDataObject();
    
            if (retrievedData.GetDataPresent("CustomFormat"))
            {
                ListViewItem item = 
                    retrievedData.GetData("CustomFormat") as ListViewItem;
                if (item != null)
                {
                    MessageBox.Show(item.Text);
                }
            }
    
            if (retrievedData.GetDataPresent(typeof(Customer)))
            {
                Customer customer = 
                    retrievedData.GetData(typeof(Customer)) as Customer;
                if (customer != null)
                {
                    MessageBox.Show(customer.Name);
                }
            }
        }
    ...    [Serializable]
        public class Customer
        {
            private string nameValue = string.Empty;
            public Customer(String name)
            {
                nameValue = name;
            }
            public string Name
            {
                get { return nameValue; }
                set { nameValue = value; }
            }
        }
    
    

Vea también

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft