Comparteix a través de


Clipboard Clase

Definición

Proporciona métodos para colocar datos en el Portapapeles del sistema y recuperarlos. Esta clase no puede heredarse.

public ref class Clipboard sealed
public ref class Clipboard abstract sealed
public sealed class Clipboard
public static class Clipboard
type Clipboard = class
Public NotInheritable Class Clipboard
Public Class Clipboard
Herencia
Clipboard

Ejemplos

En el ejemplo de código siguiente se usan Clipboard métodos para colocar datos en el Portapapeles del sistema y recuperarlos. Este código supone que button1, button2, textBox1y textBox2 se han creado y colocado en el formulario.

El button1_Click método llama SetDataObject a para tomar el texto seleccionado del cuadro de texto y colocarlo en el Portapapeles del sistema.

El button2_Click método llama GetDataObject a para recuperar datos del Portapapeles del sistema. El código usa IDataObject y DataFormats para extraer los datos devueltos y muestra los datos en textBox2.

private:
   void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      // Takes the selected text from a text box and puts it on the clipboard.
      if ( !textBox1->SelectedText->Equals( "" ) )
      {
         Clipboard::SetDataObject( textBox1->SelectedText );
      }
      else
      {
         textBox2->Text = "No text selected in textBox1";
      }
   }

   void button2_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      // Declares an IDataObject to hold the data returned from the clipboard.
      // Retrieves the data from the clipboard.
      IDataObject^ iData = Clipboard::GetDataObject();
      
      // Determines whether the data is in a format you can use.
      if ( iData->GetDataPresent( DataFormats::Text ) )
      {
         // Yes it is, so display it in a text box.
         textBox2->Text = (String^)(iData->GetData( DataFormats::Text ));
      }
      else
      {
         // No it is not.
         textBox2->Text = "Could not retrieve data off the clipboard.";
      }
   }
private void button1_Click(object sender, System.EventArgs e) {
    // Takes the selected text from a text box and puts it on the clipboard.
    if(textBox1.SelectedText != "")
       Clipboard.SetDataObject(textBox1.SelectedText);
    else
       textBox2.Text = "No text selected in textBox1";
 }
 
 private void button2_Click(object sender, System.EventArgs e) {
    // Declares an IDataObject to hold the data returned from the clipboard.
    // Retrieves the data from the clipboard.
    IDataObject iData = Clipboard.GetDataObject();
 
    // Determines whether the data is in a format you can use.
    if(iData.GetDataPresent(DataFormats.Text)) {
       // Yes it is, so display it in a text box.
       textBox2.Text = (String)iData.GetData(DataFormats.Text); 
    }
    else {
       // No it is not.
       textBox2.Text = "Could not retrieve data off the clipboard.";
    }
 }
Private Sub button1_Click(sender As Object, e As System.EventArgs)
    ' Takes the selected text from a text box and puts it on the clipboard.
    If textBox1.SelectedText <> "" Then
        Clipboard.SetDataObject(textBox1.SelectedText)
    Else
        textBox2.Text = "No text selected in textBox1"
    End If
End Sub
 
Private Sub button2_Click(sender As Object, e As System.EventArgs)
    ' Declares an IDataObject to hold the data returned from the clipboard.
    ' Retrieves the data from the clipboard.
    Dim iData As IDataObject = Clipboard.GetDataObject()
    
    ' Determines whether the data is in a format you can use.
    If iData.GetDataPresent(DataFormats.Text) Then
        ' Yes it is, so display it in a text box.
        textBox2.Text = CType(iData.GetData(DataFormats.Text), String)
    Else
        ' No it is not.
        textBox2.Text = "Could not retrieve data off the clipboard."
    End If
End Sub

Comentarios

Para obtener una lista de formatos predefinidos que se van a usar con la Clipboard clase , vea la DataFormats clase .

Llame SetDataObject a para colocar datos en el Portapapeles y reemplace su contenido actual. Para colocar una copia persistente de los datos en el Portapapeles, establezca el copy parámetro trueen .

Nota

Para colocar datos en el Portapapeles en varios formatos, use la DataObject clase o una IDataObject implementación. Coloque datos en el Portapapeles en varios formatos para maximizar la posibilidad de que una aplicación de destino, cuyos requisitos de formato no conozca, pueda recuperar correctamente los datos.

Llame GetDataObject a para recuperar datos del Portapapeles. Los datos se devuelven como un objeto que implementa la IDataObject interfaz . Utilice los métodos especificados por IDataObject y en DataFormats para extraer los datos del objeto . Si no conoce el formato de los datos recuperados, llame al GetFormats método de la IDataObject interfaz para obtener una lista de todos los formatos en los que se almacenan los datos. A continuación, llame al GetData método de la IDataObject interfaz y especifique un formato que la aplicación pueda usar.

En .NET Framework 2.0, la Clipboard clase proporciona métodos adicionales que facilitan el trabajo con el Portapapeles del sistema. Llame al Clear método para quitar todos los datos del Portapapeles. Para agregar datos de un formato determinado al Portapapeles, reemplazando los datos existentes, llame al método Format adecuadoSet, como SetText, o llame al SetData método para especificar el formato. Para recuperar datos de un formato determinado del Portapapeles, primero llame al método Format adecuado Contains (como ContainsText) para determinar si el Portapapeles contiene datos en ese formato y, a continuación, llame al método Format adecuado Get (como GetText) para recuperar los datos si el Portapapeles lo contiene. Para especificar el formato en estas operaciones, llame a los ContainsData métodos y GetData en su lugar.

Nota

Todas las aplicaciones basadas en Windows comparten el Portapapeles del sistema, por lo que el contenido está sujeto a cambios al cambiar a otra aplicación.

Para poder colocarse en el Portapapeles, un objeto debe ser serializable. Si pasa un objeto no serializable a un método de Portapapeles, se producirá un error en el método sin generar una excepción. Consulte System.Runtime.Serialization para obtener más información sobre la serialización. Si la aplicación de destino requiere un formato de datos muy específico, los encabezados agregados a los datos del proceso de serialización pueden impedir que la aplicación reconozca los datos. Para conservar el formato de datos, agregue los datos como una Byte matriz a MemoryStream y pase al MemoryStreamSetData método .

La clase Clipboard solo se puede usar en subprocesos establecidos en modo de subprocesamiento controlado simple (STA). Para usar esta clase, asegúrese de que el método Main está marcado con el atributo STAThreadAttribute.

Es posible que sea necesario tener en cuenta consideraciones especiales al usar el formato de metarchivo con el Portapapeles. Debido a una limitación en la implementación actual de la DataObject clase , es posible que las aplicaciones que usen un formato de metarchivo antiguo no reconozcan el formato de metarchivo usado por .NET Framework. En este caso, debe interoperar con las interfaces de programación de aplicaciones de Portapapeles win32 (API).

Métodos

Clear()

Quita todos los datos del Portapapeles.

ContainsAudio()

Indica si en el Portapapeles hay datos con formato WaveAudio.

ContainsData(String)

Indica si en el Portapapeles hay datos con el formato especificado o que se puedan convertir a ese formato.

ContainsFileDropList()

Indica si en el Portapapeles hay datos con el formato FileDrop o que se puedan convertir a ese formato.

ContainsImage()

Indica si en el Portapapeles hay datos con el formato Bitmap o que se puedan convertir a ese formato.

ContainsText()

Indica si en el Portapapeles hay datos con el formato Text o UnicodeText, en función del sistema operativo.

ContainsText(TextDataFormat)

Indica si en el Portapapeles hay datos de texto con el formato que indica el valor de TextDataFormat especificado.

GetAudioStream()

Recupera una secuencia de audio del Portapapeles.

GetData(String)

Recupera datos del Portapapeles con el formato especificado.

GetDataObject()

Recupera los datos que se encuentran actualmente en el Portapapeles del sistema.

GetFileDropList()

Recupera del Portapapeles una colección de nombres de archivo.

GetImage()

Recupera una imagen del Portapapeles.

GetText()

Recupera del Portapapeles datos de texto que tengan el formato Text o UnicodeText, en función del sistema operativo.

GetText(TextDataFormat)

Recupera del Portapapeles datos de texto con el formato que indica el valor de TextDataFormat especificado.

SetAudio(Byte[])

Borra el Portapapeles y agrega una matriz de Byte con el formato WaveAudio, después de convertirla en un objeto Stream.

SetAudio(Stream)

Borra el Portapapeles y, a continuación, agrega Stream en el formato WaveAudio.

SetData(String, Object)

Borra el Portapapeles y, a continuación, agrega los datos en el formato especificado.

SetDataObject(Object)

Borra el Portapapeles y, a continuación, coloca datos no persistentes en él.

SetDataObject(Object, Boolean)

Borra el Portapapeles y, a continuación, coloca datos en él y especifica si deben permanecer cuando se cierre la aplicación.

SetDataObject(Object, Boolean, Int32, Int32)

Borra el Portapapeles y, a continuación, intenta colocar datos en él el número especificado de veces y con la demora determinada entre cada intento y, opcionalmente, deja los datos en el Portapapeles después de cerrar la aplicación.

SetFileDropList(StringCollection)

Borra el Portapapeles y, a continuación, agrega una colección de nombres de archivo en el formato FileDrop.

SetImage(Image)

Limpia el Portapapeles y, a continuación, agrega Image en el formato Bitmap.

SetText(String)

Borra el Portapapeles y le agrega datos de texto con el formato Text o UnicodeText, en función del sistema operativo.

SetText(String, TextDataFormat)

Borra el Portapapeles y agrega datos de texto con el formato que indica el valor de TextDataFormat especificado.

Se aplica a

Consulte también