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 DataObject
dataChunk
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.