Clipboard Question

  • Thread starter Thread starter Newbie
  • Start date Start date
In VB.NET 2003 the Clipboard only had 2 things

GetDataObject & SetDataObject

So, you are wrong

Anyone know the correct way to do this?

TIA

Newbie
 
Dear Newbie,

from the VB.NET 2003 online help:

Clipboard Object Changes in Visual Basic .NET

The Clipboard object in Visual Basic 6.0 has no direct equivalent in
Visual Basic .NET. Although there is no direct mapping, the
functionality of the Clipboard object can be duplicated using the
System.Windows.Forms.Clipboard namespace.

During upgrade, any code that references the Clipboard object is not
upgraded and must be rewritten. The following example shows how to
modify code that uses the Clipboard object:

' Visual Basic 6.0
Clipboard.Clear
Clipboard.SetText "hello", vbCFText

If Clipboard.GetFormat(vbCFText) Then
Text1.Text = Clipboard.GetText(vbCFText)
End If


This can be rewritten as:

' Visual Basic .NET
Dim datobj As New System.Windows.Forms.DataObject

datobj.SetData System.Windows.Forms.DataFormats.Text, "hello"
System.Windows.Forms.Clipboard.SetDataObject datobj

If System.Windows.Forms.Clipboard.GetDataObject.GetDataPresent( _
System.Windows.Forms.DataFormats.Text) Then
Text1.Text = System.Windows.Forms.Clipboard.GetDataObject.GetData( _
System.Windows.Forms.DataFormats.Text)
End If

Best Regards,

HKSHK
 
Thank you for your reply, but all that does it get data from the clipboard,
but it doesn't actually delete (destroy all data on the clipboard) in VB.NET
2003

Any ideas?
 
Dear Newbie,

you can make some API calls:
Private Declare Function OpenClipboard Lib "user32.dll" (ByVal hwnd As
Int32) As Int32

Private Declare Function EmptyClipboard Lib "user32.dll" () As Int32

Private Declare Function CloseClipboard Lib "user32.dll" () As Int32

Then ...

OpenClipboard(0)
EmptyClipboard()
CloseClipboard()

Best Regards,

HKSHK
 
HKSHK said:
you can make some API calls:
Private Declare Function OpenClipboard Lib "user32.dll" (ByVal hwnd As
Int32) As Int32

Note that handles should be typed as 'IntPtr' in order to ensure
64-bit-Windows compatibility.
 
Back
Top