Share via


Almacenar y leer datos en el Portapapeles (Visual Basic)

El Portapapeles se puede usar para almacenar datos, como texto e imágenes. Dado que todos los procesos activos comparten el Portapapeles, se puede usar para transferir datos entre ellos. El objeto My.Computer.Clipboard permite acceder fácilmente al Portapapeles y leer y escribir en él.

Leer desde el Portapapeles

Use el método GetText para leer el texto en el Portapapeles. El código siguiente lee el texto y lo muestra en un cuadro de mensaje. Para que el ejemplo se ejecute correctamente debe haber texto almacenado en el Portapapeles.

MsgBox(My.Computer.Clipboard.GetText())

Este ejemplo de código también está disponible como fragmento de código de IntelliSense. En el selector de fragmentos de código, se encuentra en Aplicaciones de Windows Forms > Portapapeles. Para obtener más información, vea Fragmentos de código.

Use el método GetImage para recuperar una imagen del Portapapeles. En este ejemplo se comprueba si hay una imagen en el Portapapeles antes de recuperarla y asignarla a PictureBox1.

If My.Computer.Clipboard.ContainsImage() Then
    Dim grabpicture As System.Drawing.Image
    grabpicture = My.Computer.Clipboard.GetImage()
    picturebox1.Image = grabpicture
End If

Este ejemplo de código también está disponible como fragmento de código de IntelliSense. En el selector de fragmentos de código, se encuentra en Aplicaciones de Windows Forms > Portapapeles. Para más información, consulte Fragmentos de código.

Los elementos colocados en el Portapapeles se conservan incluso después de que se cierre la aplicación.

Determinar el tipo de archivo almacenado en el Portapapeles

Los datos del Portapapeles pueden adoptar varios formatos distintos, como texto, un archivo de audio o una imagen. Para determinar qué tipo de archivo está en el Portapapeles, puede usar métodos como ContainsAudio, ContainsFileDropList, ContainsImage y ContainsText. El método ContainsData puede usarse si tiene un formato personalizado que desea comprobar.

Use la función ContainsImage para determinar si los datos incluidos en el Portapapeles son una imagen. El código siguiente comprueba si los datos son una imagen e informa en consecuencia.

If My.Computer.Clipboard.ContainsImage() Then
    MsgBox("Clipboard contains an image.")
Else
    MsgBox("Clipboard does not contain an image.")
End If

Borrar el Portapapeles

El método Clear borra el Portapapeles. Dado que otros procesos comparten el Portapapeles, borrarlo puede afectar a esos procesos.

En el código siguiente se muestra cómo puede utilizar el método Clear.

My.Computer.Clipboard.Clear()

Escribir en el Portapapeles

Use el método SetText para escribir texto en el Portapapeles. El código siguiente escribe la cadena "This is a test string" en el Portapapeles.

My.Computer.Clipboard.SetText("This is a test string.")

El método SetText puede aceptar un parámetro de formato que contenga un tipo de TextDataFormat. El código siguiente escribe la cadena "This is a test string" en el Portapapeles como texto RTF.

My.Computer.Clipboard.SetText("This is a test string.", 
System.Windows.Forms.TextDataFormat.Rtf)

Use el método SetData para escribir datos en el Portapapeles. En este ejemplo se escribe el DataObjectdataChunk en el Portapapeles con el formato personalizado specialFormat.

My.Computer.Clipboard.SetData("specialFormat", dataChunk)

Use el método SetAudio para escribir datos de audio en el Portapapeles. Este ejemplo crea la matriz de bytes musicReader, lee el archivo cool.wav que hay dentro y lo escribe en el Portapapeles.

Dim musicReader = My.Computer.FileSystem.ReadAllBytes("cool.wav")
My.Computer.Clipboard.SetAudio(musicReader)

Importante

Dado que otros usuarios pueden acceder al Portapapeles, no lo use para almacenar información confidencial, como contraseñas o datos confidenciales.

Vea también