Clearing the Clipboard

Clearing the Clipboard

VB6’s Clipboard object has methods such as GetData, GetText, SetData, and SetText, which allow the developer to store to and retrieve data from the clipboard. VB.NET’s System.Windows.Forms.Clipboard class also has GetDataObject and SetDataObject methods that allow you do perform the same operations. However, while VB6’s Clipboard object has a Clear method, VB.NET class does not have such functionality. Not directly, at least.

You might think it would be sufficient to copy an empty string to the clipboard, as follows:

Clipboard.SetDataObject(New DataObject(""))

However, now try to check whether the clipboard is empty, with the following code:

isEmpty = Clipboard.GetDataObject().GetDataPresent("System.String")

isEmpty will be False, meaning that the clipboard stored something, which is not what you would expect, or not what you typically want, anyway. The solution is to pass an empty DataObject object to Clipboard.SetDataObject, not an empty string, as shown below:

Sub ClearClipboard()    Clipboard.SetDataObject(New DataObject)End Sub


Share the Post: