Esta documentación está archivada y no tiene mantenimiento.

Clipboard.GetDataObject (Método)

Actualización: noviembre 2007

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

Espacio de nombres:  System.Windows.Forms
Ensamblado:  System.Windows.Forms (en System.Windows.Forms.dll)

public static IDataObject GetDataObject()
public static IDataObject GetDataObject()
public static function GetDataObject() : IDataObject

Valor devuelto

Tipo: System.Windows.Forms.IDataObject
IDataObject que representa los datos que existen actualmente en el Portapapeles, o null si no hay datos en el Portapapeles.

ExcepciónCondición
ExternalException

No se han podido recuperar datos del Portapapeles. Esto ocurre normalmente cuando otro proceso utiliza el Portapapeles.

ThreadStateException

El subproceso actual no está en modo de apartamento de un único subproceso (STA) y el valor de la propiedad Application.MessageLoop es true. Agregue STAThreadAttribute al método Main de la aplicación.

Como el tipo de datos del objeto que devuelve el Portapapeles puede variar, este método devuelve los datos en una interfaz IDataObject. A continuación se pueden usar los métodos de la interfaz IDataObject para extraer los datos en su tipo de datos correspondiente.

Este método intenta obtener los datos diez veces, en intervalos de 100 milisegundos, y produce una excepción ExternalException si no lo consigue en ningún intento.

1a301d6k.alert_note(es-es,VS.90).gifNota:

La clase Clipboard sólo se puede utilizar en subprocesos establecidos en el modo de apartamento de un único subproceso (STA). Para utilizar esta clase, asegúrese de que su método Main está marcado con el atributo STAThreadAttribute.

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

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

El método button2_Click llama a GetDataObject para recuperar datos del Portapapeles del sistema. Este fragmento de código usa IDataObject y DataFormats para extraer los datos devueltos. Los datos se muestran 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 != "")
       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 void button1_Click(Object sender, System.EventArgs e)
{
    // Takes the selected text from a text box and puts it on the clipboard.
    if (!textBox1.get_SelectedText().Equals("")) {
        Clipboard.SetDataObject(textBox1.get_SelectedText());
    }
    else {
        textBox2.set_Text("No text selected in textBox1");
    }
} //button1_Click

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.set_Text((String)(iData.GetData(DataFormats.Text)));
    }
    else {
        // No it is not.
        textBox2.set_Text("Could not retrieve data off the clipboard.");
    }
} //button2_Click


private function button1_Click(sender : Object, e : System.EventArgs) {
    //Take the selected text from a text box and put it on the clipboard.
    if(textBox1.SelectedText != "")
       Clipboard.SetDataObject(textBox1.SelectedText);
    else
       textBox2.Text = "No text selected in textBox1";
 }

 private function button2_Click(sender : Object, e : System.EventArgs) {
    //Declare an IDataObject to hold the data returned from the clipboard.
    //Then retrieve the data from the clipboard.
    var iData : IDataObject = Clipboard.GetDataObject();

    //Determine 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.";
    }
 }



Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 3.5, 2.0
Mostrar: